<SEC-DOCUMENT>0000851205-20-000011.txt : 20200729
<SEC-HEADER>0000851205-20-000011.hdr.sgml : 20200729
<ACCEPTANCE-DATETIME>20200729161116
ACCESSION NUMBER:		0000851205-20-000011
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		96
CONFORMED PERIOD OF REPORT:	20200628
FILED AS OF DATE:		20200729
DATE AS OF CHANGE:		20200729

FILER:

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

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

	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-Q
<SEQUENCE>1
<FILENAME>cgnx-20200628.htm
<DESCRIPTION>10-Q
<TEXT>
<XBRL>
<?xml version="1.0" ?><!--XBRL Document Created with Wdesk from Workiva--><!--Copyright 2020 Workiva--><!--r:02407863-1aa6-4dd3-b32c-ad49ce80f53d,g:b1bfca50-59f6-49eb-9685-ec35a28640f4,d:ec310d5d14154791acae03eee3bb73e6--><html xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cgnx="http://www.cognex.com/20200628" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:currency="http://xbrl.sec.gov/currency/2020-01-31" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31" xmlns:country="http://xbrl.sec.gov/country/2020-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns="http://www.w3.org/1999/xhtml" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:srt="http://fasb.org/srt/2020-01-31" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>cgnx-20200628</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityCentralIndexKey" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV8xLTItMS0xLTA_0a7ae6e9-c031-40e1-9a91-16bdf96e895e">0000851205</ix:nonNumeric><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:CurrentFiscalYearEndDate" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV8yLTItMS0xLTA_8bec0d1c-d0bb-4e9e-a8e2-0e59dd249727">--12-31</ix:nonNumeric><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:DocumentFiscalYearFocus" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV8zLTItMS0xLTA_a960d81e-9dc1-4bbb-a0d4-af5c321aebc6">2020</ix:nonNumeric><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:DocumentFiscalPeriodFocus" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV80LTItMS0xLTA_1a4d2938-bcc2-4eee-a9e3-e357005867d5">Q2</ix:nonNumeric><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:AmendmentFlag" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV81LTItMS0xLTA_19d2323d-c250-4e9a-949c-d93f6e74ab11">false</ix:nonNumeric><ix:nonFraction unitRef="shares" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt:numdotdecimal" name="dei:EntityCommonStockSharesOutstanding" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV82LTItMS0xLTA_787ce38d-5c4f-4c20-9965-2faef38591f4">173,047,292</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS0xLTEtMS0w_32b93a13-4e86-40b3-bdc0-eefd3366556d">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS0zLTEtMS0w_0b4eb99f-46dc-4d43-8f5e-afb46ba92dba">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS01LTEtMS0w_ee7159e0-7ac6-4c7e-88d3-62a3fe3514d7">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS03LTEtMS0w_0f364af2-c769-4f23-8754-ec16a81468a4">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi0xLTEtMS0w_f26a16f7-c388-4054-bd9c-1a5c058a26a8">836</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi0zLTEtMS0w_4d36e92d-c823-4f12-b8dc-41ab7028e221">239</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi01LTEtMS0w_a5e28c7e-2b75-4297-8911-3aa8b780bc9a">1,788</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi03LTEtMS0w_f4654480-661a-4b1f-8144-b693b1ef85ce">507</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy0xLTEtMS0w_9affa18e-1691-4db7-ade1-4a5c3f51814b">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy0zLTEtMS0w_2ee3f9d7-740a-4467-9279-af7f1c1b382c">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy01LTEtMS0w_c62e19c3-27c2-4edd-bb30-d003052935f2">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy03LTEtMS0w_ecb79068-916f-452f-8e55-75a9d2ed73ff">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMS0xLTEtMS0w_f1dea02c-3d72-4fee-9632-ec73ab133713">2,235</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMS0zLTEtMS0w_8c498053-fbca-4855-a847-c16819c03457">1,821</ix:nonFraction><ix:nonFraction unitRef="usdPerShare" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMi0xLTEtMS0w_eb2c2206-5b96-4279-bf87-4556b33c9e43">0.002</ix:nonFraction><ix:nonFraction unitRef="usdPerShare" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMi0zLTEtMS0w_f4676ff6-788a-4a00-a438-8d0002151c7f">0.002</ix:nonFraction><ix:nonFraction unitRef="shares" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesAuthorized" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMy0xLTEtMS0w_99d8ba66-c118-49d3-8779-9477d4a2dff2">300,000</ix:nonFraction><ix:nonFraction unitRef="shares" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesAuthorized" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMy0zLTEtMS0w_95e11892-4ab5-420c-92ed-e72e8e03fc4e">300,000</ix:nonFraction><ix:nonFraction unitRef="shares" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfNC0xLTEtMS0w_a55f4e63-4241-4fa9-af8f-6b637e61b278">173,047</ix:nonFraction><ix:nonFraction unitRef="shares" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfNC0zLTEtMS0w_a67815f6-6365-41d7-99f6-183986fff58e">172,440</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi0xLTEtMS0w_ec5fdbbc-cea0-44e5-bd1f-c4f43a723405">836</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi0yLTEtMS0w_6176f1fb-1e69-447e-a0a1-6fb4fe769d42">239</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi0zLTEtMS0w_587f67c9-75f1-4fae-b90b-384dee962b22">1,788</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi00LTEtMS0w_eba999de-38ba-478f-8c7e-46d6aa3bab77">507</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="ie5d627cadb964791b6ccba23ebc74578_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80OS9mcmFnOjgyYWRhZjFkZTU2YzRmZmJiZjE0MmFlMmM4YzA0Y2E2L3RleHRyZWdpb246ODJhZGFmMWRlNTZjNGZmYmJmMTQyYWUyYzhjMDRjYTZfNzI_6f0d59bc-f9b2-4bd6-868e-911e44acf791">1,153,000</ix:nonFraction><ix:nonNumeric contextRef="iabeff905e5ca48a4b1ca617ac169e8c0_D20200101-20200628" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzk2_c9b27df8-2451-462e-927f-008a5aa7ff1c">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="iabeff905e5ca48a4b1ca617ac169e8c0_D20200101-20200628" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83OS9mcmFnOjBkOTE4Yjg3ODRjYTQ4Mjk4ZTdkMmE5MjM1Mzg3M2NjL3RleHRyZWdpb246MGQ5MThiODc4NGNhNDgyOThlN2QyYTkyMzUzODczY2NfMTUy_e4770a79-2325-4071-8a8e-98f7b8d45826">four years</ix:nonNumeric><ix:nonFraction unitRef="shares" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83OS9mcmFnOjBkOTE4Yjg3ODRjYTQ4Mjk4ZTdkMmE5MjM1Mzg3M2NjL3RleHRyZWdpb246MGQ5MThiODc4NGNhNDgyOThlN2QyYTkyMzUzODczY2NfMjU0_79d803e6-591b-4417-aad8-efdc62a8a9f9">no</ix:nonFraction></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="cgnx-20200628.xsd"></link:schemaRef></ix:references><ix:resources><xbrli:context id="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:context id="if2ca316ec02e481498b0cbcf89252fe1_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="usd"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:context id="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</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="i50c300c01cad466888f3adcd2745bef7_I20191231"><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="i0b0706b68e684f83aa546dd2533ce44b_I20181231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i9003d025fdf74baf9cfde117be3e31e3_I20200329"><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-03-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6d3d9cdf100e49429e0096f15c8f51c8_I20200329"><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-03-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i938a629326a0439aa43ad35cdac85063_I20200329"><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-03-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1e9f2b6e17ba467f9e0e9d684bbde89e_I20200329"><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-03-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id8519e56581148ae8b301b041e6ee876_I20200329"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-03-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i8a9e1ef6774044ef9190aafe3633273c_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i4d292a0e3d51452b98af45d0003e89eb_I20200628"><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-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="icb2e5217f55f406289b5cabb8359f389_I20200628"><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-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic26f54781e5c4a8886eddc97b739c7f5_I20200628"><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-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i96d78535cce74acdbf73cf711e8d9464_I20200628"><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-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iaec1d0005f3841edaa0f1a67e2658cbe_I20190331"><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>2019-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if439bca2e85b44968f4a4ab1683fd0e1_I20190331"><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>2019-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib57c714e8813465ab9a6f10dbad1be98_I20190331"><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>2019-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i34398295dff14da1a866d30e00f8aa89_I20190331"><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>2019-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib3897b228f05439eb381f0e036a97929_I20190331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="id1958ec4cb8f46429d60ecb4713343a3_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630"><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>2019-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic051ab77728e40908d6b485f1b354a8f_I20190630"><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>2019-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i804ab526c89e443f8b3dcaf6af2de12e_I20190630"><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>2019-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i0445be96163342e5b1962b12962e92f4_I20190630"><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>2019-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5df802dd93044ae49cb3336212205376_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ibe498205c18947f0bef7f72145695991_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia04ef572494a469e85e6da42fb4c2e6f_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i496c881206324a98a7057d07953934fb_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ic6f5006b10c5487f9c1175c4680b9707_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1c643112133f451baa01d848b56a13f0_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib8d6fc9c105641509da02b1704c72686_I20181231"><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>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i2c1b1a2a383241c8bb09a8280fc8a19d_I20181231"><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>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib67475f7ae274115ba9d67504c6d47b1_I20181231"><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>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic300f4175ae543be884f97db607cbd6b_I20181231"><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>2018-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i4dd591ad2c334f38a05a749f22572a52_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i9dc01e71d6314fe6884aa8e36895f63e_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if4f9afe0d6af4e54bbbb6d745623672b_I20200628"><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:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i751ce105a23043c9b8c7160cf868755e_I20200628"><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><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i451bed49b98543ba8feeb4d38db529cb_I20200628"><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="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i09ab9c2f3e284c039d5f1c7dabec64ea_I20200628"><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><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i959c1d93f1da448ba0d6ed03b2b352fa_I20200628"><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="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i7a338ee96e604cef913d651070774eeb_I20200628"><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><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i9af2528fb3cb42b2856fd1a7841c74d4_I20200628"><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><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5c79b7f8d5714c1ca485ccd80bc001f8_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i7bd2b9926b0141c490ca0c40a367e622_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if9ce6259d29647d6855d301fa7b1e39f_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i4b5cd194378142eeb95ce442c13207a2_I20200628"><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:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1f553599986a436c9b3288c83cc53a3d_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i955df87e73494d7fa976f50036933ad1_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:RestructuringChargesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie5d627cadb964791b6ccba23ebc74578_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i3f9be86c082d454982db4b1e9f417f66_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i524fffe11789474187ead333ba0d7920_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="icdd1279cdd444b3b8d446d8df78f669d_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ibc7324cdfd4248d09bec160bf8f94fa6_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i59c12507d0b642e9b81c2e821913ae17_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i27a24cdf51794e24ae3a5d31a6666690_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if30d5aee2c44425da343f5d66f39d18f_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i85ff251260ad4df3bf4fef4a3c9db1b4_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i7428b2868c414661bdbe5132b920faf0_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="idfa3a82b761842d3a82f32a1be036e1e_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia00037290a1f430e8012506014c58c72_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id328d17eff4842a997835619d489bb34_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i4c49e8a5b27241c8a53e6dfe04b134b4_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib004241936c04bb9ae9de0b6d0b240c5_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia44d8601ad7741d991c09e99ce636799_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ifc1802cbd48d47b89b0cfa0214579bbf_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie53b122d392e48d78d2eb049e3278b50_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if4e61c976baa40a2871a88e06a4e8c4d_I20200628"><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><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iae3918a8cdad4e7a9bea1c3947b20656_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i30de0db3427742059c4e647dd6f45516_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i4aa8afd354c1497e8a82da39af166564_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic589f29e9d0d424699fac022a6168312_I20200628"><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="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i55b1fd91b65b48cda665060e16c8da1c_I20200628"><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><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id263e8429ddf42988c0b21b545b1ef16_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i36ca6a11d1ac4087ab59eca47da110cd_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6c7a75be726544c3950ebaf23e4eefc6_I20200628"><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="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="number"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:context id="ie83c429fea4647eeb2ed34a6a4a00424_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia19541e3a9de4e59b3481c56398dfc07_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1ce567eeb149442f9236fa3691572cf6_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i636ffc42e3da455abbb8e4da25901390_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i18c3dda1c1274643908d3ec134b34bea_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1a1a1e7625f040bba2f256af3ded829b_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5384f6f4408944488866d83556fdb79f_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1f05ac941b69406b9637f7ccd30a80ef_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie48b0610188d40cc8ab1beab4a72816c_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i61b2208174334f058b8a75c11a91b001_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i06b719aac978489cbc1fdfb106387690_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1bd1a72b1d41496d8f37717244d55fae_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i36c6597aaabe4fe8a6a2385278ad7483_I20200526"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i144afef51ddb4238b254c1bef001d17c_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i035c043ef297493cb2548f6c14daefae_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i52434fd077654f68a8f6068def6a4808_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="krw"><xbrli:measure>iso4217:KRW</xbrli:measure></xbrli:unit><xbrli:context id="i3d13b94b64c443f88f275cd93466c73e_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i3ad2ace0eca940538df3133877e1ac52_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="eur"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit><xbrli:context id="ie5803dec173141819033849ca19c6690_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ibed22609e15b4e6681439903fb4dfb17_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="jpy"><xbrli:measure>iso4217:JPY</xbrli:measure></xbrli:unit><xbrli:context id="i03deb9851e37488aa7e18c5b5a973ad0_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia34a7ab335404395a5a6468d1499242e_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="idf51f16be7c64abc9393c4d0c69fa8c8_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i954f0b7df2b84ed6ac4c336e4218ad01_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i0ac2e1f496f1499591debaa5712935eb_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iadc04b1d29ad44db9ede836751e543c7_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6894568cee88443cb066c775905e6323_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id7570fd5e2974a659ce9ebb785ae3365_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="twd"><xbrli:measure>iso4217:TWD</xbrli:measure></xbrli:unit><xbrli:context id="i1b73edf6a49f4b94ae07c25974b211ec_I20200628"><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:TWD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i36467e5f20c049afa2047642a807ca07_I20191231"><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:TWD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="cad"><xbrli:measure>iso4217:CAD</xbrli:measure></xbrli:unit><xbrli:context id="ib2a6509c1e5e41a58c9916af202e1dd6_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic2e0750327a143a0abf3a34b12bff717_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="sgd"><xbrli:measure>iso4217:SGD</xbrli:measure></xbrli:unit><xbrli:context id="i3210059d0c934169b9bff4820113a080_I20200628"><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:SGD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia89b9a9abd2a403383c5bb5122616550_I20191231"><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:SGD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i06aa76c6ba1f4c87b3a8d44c4b2e3844_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie5e09ca76b6e456781fb8f68ccfc82df_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ieb8511a4b6a44074b57b566b2eea1569_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="idd70e8dc603e4b31a2d3b584eab61514_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id0e2a9c3d94042afb732e0872efdfca6_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i3b0029c533124788896ad55afe18eae3_D20190401-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i5bd2140e1d66490ab6f7339ef2eff581_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i122b2de417f04d2d9a715ebc04773a49_D20190101-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie3fd972f5b0b4967bf88d0e4de64b1e5_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="icd0edf20692d48dbbe6d886aa44e4d84_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia163194839f34b64a4b66b46db94b3d8_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1e754cc563fb403d81a3a6443bfadb43_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i5d22292744df4d90b9f2ce7b901b3753_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia1a183ea47fc4f63a7a2cc9f00e90e77_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i150945a1664c4725b713b1051754f224_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i615c0a4086a840c7bc790f6a8a5f94d5_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia92ee68fa1bf4f6e98ff25169ba78ae7_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i08025680923a48a4b721007531ace7bd_D20190401-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i903458e444704eabbd9faea8afa62769_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i21e18f7d15034eefab74e871020222be_D20190101-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i0b77066fbfca41f8855e5c3a31f6e128_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i8c231dd68f5f4ba7b246f0b6475c4492_D20190401-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="if2ea6ea03d6b41eca4e15a32e6db30e9_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i694405d7706f467e94016e46a85639a2_D20190101-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i50380bb827a94448a6ac013d0bc30e84_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1a04c99690a04b70869650f81a2655ca_D20190401-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i55f5d87a128a4fc586b4d06d1292398c_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iadca4fe23d914d9a90eadb8fc73e7efa_D20190101-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib256bbe2ed3a4649983bf022671c4f27_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1427b972f8194e9bb61bbdeb2ccd1d6a_D20190401-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i2cb65854f49c47899ae94365b923117c_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ice4024e721f04fb5b7084bc81e5ad7cd_D20190101-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie90d730c1a5d4b67aae424e063c904d5_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iabeff905e5ca48a4b1ca617ac169e8c0_D20200101-20200628"><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:PlanNameAxis">cgnx:GeneralStockOptionPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i391830b02fb64117bcee6d7a82c55844_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:GeneralStockOptionPlanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i78f7ce06fb6c4a8abe700d7761a911b6_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i7bd2b61d8f8f46cc9ab61ef640de74bc_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i9e0c96315b424e56924808a79a15e591_I20191231"><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:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i8ee7be1a6ecf4ed7815ed69f7dac42cd_I20200628"><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:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib8b0bf2a77834ce88571dd01f83e0cca_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i55b074489f724905bac5ce61e111c0c8_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="group"><xbrli:measure>cgnx:group</xbrli:measure></xbrli:unit><xbrli:context id="i06a9f689529d44ea9723e6cc0ac766fa_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i2ef068d8c3c14069905ba89e9a6b5eaa_D20190401-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="if63a5b3ff51747a7acf2b9763080259c_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i8510b9a70cf64f7fbdd4bcffe5856f2d_D20190101-20190630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie7d349cddf79450fb7ec61b59469955c_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie522880486f84d7595b434ed962eacd6_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1549c24baeea47a0b54ff9b987a12358_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ibb66e794d1264711afdf4f25a22af3de_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i5f0dde5ff23b474383f628184c115137_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i0bcda0824b2844a28394aaae0d03e9d3_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i2f37aff1307a4ab9be50829bdda812dc_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ibe0b75c6204c46e9b19b07d490ffda88_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i979d000c5483415184aa8b9629ee1c46_I20181029"><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="i5cde25447c244a5a90a1b77b05f9c5f1_I20200628"><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>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i0097f887461345248832cb36df04c1cd_I20200329"><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>2020-03-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5d0c9481bd7d4ef49f533e75018c9e9b_I20200312"><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="i7a9496e00eaf4823b5faa46ab099e121_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:RevenueCommissionersIrelandMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i49d1dd25fc2b4d3abb5872982813204c_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i7746c332c79744f58927e204e4f386b3_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i07bda74078784d8590fefad2ccda6876_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="id7827367498f437bbfb70a8de8fd475d_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1fb5903360cf4323afe3f1b01cd8f7a1_D20190401-20190630"><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>2019-04-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i663c8efc644c4d02835ccb0ff0733027_D20190101-20190630"><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>2019-01-01</xbrli:startDate><xbrli:endDate>2019-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i3ffc82f09f5545fa97686d1d3ccb7cd1_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ic32e6778efab4c1baa684793e82b924d_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ic537b61975ca4beba7154e52aeb4ef46_I20200526"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ife0e92d165ae475ebc3a85b24bcf6df2_I20200526"><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:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i0dee04a40007403cade82e8888fd9e9f_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i0211d27ce6ab4f02aa4d36e19e27db7e_I20200526"><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:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i91ce5770a5e241e5b402ace756c1ae96_D20200330-20200628"><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>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iaa4635907fac42d9b5c93270fff00f32_I20200526"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i453326dcf5964e45afcc4c90e9a8a856_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="employees"><xbrli:measure>cgnx:Employees</xbrli:measure></xbrli:unit><xbrli:context id="i94185f4fe5124c19b3c0b7f61fd3d802_D20200526-20200526"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-05-26</xbrli:startDate><xbrli:endDate>2020-05-26</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="idaab6b4b384b46cf923fb1e000fc42c1_I20191231"><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:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i66e2905874d54c2caf75916e1745020c_I20191231"><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:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i087c7a0293b843fa939b25a159478a61_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i00752329dd5e416782e4cef86994ba03_I20200628"><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:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ibb57e579a32649ad80b43341a1de4d0b_I20200628"><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:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i89b581a88c95490187c013c276398814_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id52911d2174e4651aeb38a8ca2dabb70_D20200729-20200729"><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:startDate>2020-07-29</xbrli:startDate><xbrli:endDate>2020-07-29</xbrli:endDate></xbrli:period></xbrli:context></ix:resources></ix:header></div><div id="iec310d5d14154791acae03eee3bb73e6_1"></div><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;margin-top:9pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:97.222%;"><tr><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="15" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="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="text-align:center;margin-top:4pt;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:700;line-height:120%;">WASHINGTON, D.C. 20549</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:22pt;font-weight:700;line-height:120%;">FORM <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:DocumentType" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODI3_d2c85923-f19e-4810-a5d1-3cd45b79232f">10-Q</ix:nonNumeric></span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:22pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="margin-top:12pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;">(Mark One)</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:7.224%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:88.776%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:12pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:boolballotbox" name="dei:DocumentQuarterlyReport" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6OWUzZjVhYmQ3NmRhNGRmZThjZDA1MTU2ODI2ZWIyMWYvdGFibGVyYW5nZTo5ZTNmNWFiZDc2ZGE0ZGZlOGNkMDUxNTY4MjZlYjIxZl8wLTAtMS0xLTA_426217b7-4b79-4c1e-8216-0dd35af3c41c">&#9746;</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Quarterly Report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the quarterly period ended June 28, 2020 or</span></td></tr></table></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:7.224%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:88.776%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:12pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:boolballotbox" name="dei:DocumentTransitionReport" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6MTEzODIxMjNiOTExNDdjZmI1Njk2MTY5MzdiZjliNDIvdGFibGVyYW5nZToxMTM4MjEyM2I5MTE0N2NmYjU2OTYxNjkzN2JmOWI0Ml8wLTAtMS0xLTA_332df827-707a-4836-a9ab-e8633b77390c">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Transition Report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the transition period from __________ to __________</span></td></tr></table></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9.5pt;font-weight:700;line-height:120%;">            </span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9.5pt;font-weight:700;line-height:120%;">Commission File Number <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityFileNumber" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMx_5804c7c2-0c2c-4614-a542-e0431280e661">001-34218</ix:nonNumeric> </span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:17pt;font-weight:700;line-height:120%;"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityRegistrantName" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMy_f4d08208-f5d4-441b-9ae4-8ed5d5fa4e6a">COGNEX CORP</ix:nonNumeric>ORATION</span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:323.25pt;"><tr><td style="width:1.0pt;"></td><td style="width:321.25pt;"></td><td style="width:1.0pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Exact name of registrant as specified in its charter)</span></td></tr></table></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:63.304%;"><tr><td style="width:1.0%;"></td><td style="width:46.729%;"></td><td style="width:1.0%;"></td><td style="width:0.1%;"></td><td style="width:2.340%;"></td><td style="width:0.1%;"></td><td style="width:1.0%;"></td><td style="width:46.731%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:stateprovnameen" name="dei:EntityIncorporationStateCountryCode" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6YTJkMjE1YjUyNmM2NGFiY2IxMmU0NDJlMjFkZmE2YmEvdGFibGVyYW5nZTphMmQyMTViNTI2YzY0YWJjYjEyZTQ0MmUyMWRmYTZiYV8wLTAtMS0xLTA_aa92cb68-2d51-4d43-b549-12f40fb99de2">Massachusetts</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityTaxIdentificationNumber" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6YTJkMjE1YjUyNmM2NGFiY2IxMmU0NDJlMjFkZmE2YmEvdGFibGVyYW5nZTphMmQyMTViNTI2YzY0YWJjYjEyZTQ0MmUyMWRmYTZiYV8wLTItMS0xLTA_6283bd85-5120-45c2-b680-dba3c0061ec0">04-2713778</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(State or other jurisdiction of<br/>incorporation or organization)</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(I.R.S. Employer<br/>Identification No.)</span></td></tr></table></div><div style="text-align:center;"><span><br/></span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityAddressAddressLine1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMz_f46b145c-b8cd-40b2-993e-dc6883b26f42">One Vision Drive</ix:nonNumeric> </span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityAddressCityOrTown" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODM0_d4804612-a254-4812-a1f7-cd038d0d7c52">Natick</ix:nonNumeric>, <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:stateprovnameen" name="dei:EntityAddressStateOrProvince" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODM1_9073c331-96ad-42a2-9ed8-2185ed1cf8cf">Massachusetts</ix:nonNumeric> <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityAddressPostalZipCode" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODI5_eadf3e79-7e26-4d7e-bc42-4d1d0713e2ec">01760</ix:nonNumeric>-2059</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">(<ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:CityAreaCode" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMw_c05f63c9-683e-43fe-8f44-64c7fa158cd4">508</ix:nonNumeric>) <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:LocalPhoneNumber" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODI4_398acfb7-5d0c-4ad0-a5a1-c16a9badd304">650-3000</ix:nonNumeric> </span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:462.75pt;"><tr><td style="width:1.0pt;"></td><td style="width:460.75pt;"></td><td style="width:1.0pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Address, including zip code, and telephone number, including area code, of principal executive offices)</span></td></tr></table></div><div style="text-indent:9pt;padding-left:13.5pt;"><span><br/></span></div><div style="text-indent:9pt;padding-left:13.5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;">Securities registered pursuant to the Section 12(b) of the Act:</span></div><div style="padding-left:13.5pt;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:94.736%;"><tr><td style="width:1.0%;"></td><td style="width:36.117%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.524%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:39.359%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Title of each class</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Trading Symbol(s)</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Name of each exchange on which registered</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:Security12bTitle" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZGUzYjk2MzU3MWM3NDMwMGFkNDFkYmJmNzQ5YTg4M2UvdGFibGVyYW5nZTpkZTNiOTYzNTcxYzc0MzAwYWQ0MWRiYmY3NDlhODgzZV8xLTAtMS0xLTA_fb6da318-0efe-4211-95d6-1ea0ab2147b6">Common Stock, par value $.002 per share</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:TradingSymbol" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZGUzYjk2MzU3MWM3NDMwMGFkNDFkYmJmNzQ5YTg4M2UvdGFibGVyYW5nZTpkZTNiOTYzNTcxYzc0MzAwYWQ0MWRiYmY3NDlhODgzZV8xLTEtMS0xLTA_ee3d90d8-8738-46ab-83f1-90ad37ea01af">CGNX</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:exchnameen" name="dei:SecurityExchangeName" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZGUzYjk2MzU3MWM3NDMwMGFkNDFkYmJmNzQ5YTg4M2UvdGFibGVyYW5nZTpkZTNiOTYzNTcxYzc0MzAwYWQ0MWRiYmY3NDlhODgzZV8xLTItMS0xLTA_62fdad44-679a-4f97-818f-101fcf195058">The NASDAQ Stock Market LLC</ix:nonNumeric></span></td></tr></table></div><div style="text-indent:24.75pt;"><span><br/></span></div><div style="text-indent:24.75pt;"><span style="background-color:rgb(255,255,255, 0.0);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.&#160;&#160;</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:482.25pt;"><tr><td style="width:1.0pt;"></td><td style="width:96.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:30.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:33.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:55.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:21.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:33.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.75pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:9.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:85.00pt;"></td><td style="width:1.0pt;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityCurrentReportingStatus" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6NjFlZWMxOTY0YzBiNGEyNzkxMWM4NGFmZDc5MTQzMjEvdGFibGVyYW5nZTo2MWVlYzE5NjRjMGI0YTI3OTExYzg0YWZkNzkxNDMyMV8wLTItMS0xLTA_7d87bf64-7716-43c5-9719-0647030045a7">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9746;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">No</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9744;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr></table></div><div style="text-indent:24.75pt;"><span><br/></span></div><div style="text-indent:24.75pt;"><span style="background-color:rgb(255,255,255, 0.0);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 (&#167;232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:482.25pt;"><tr><td style="width:1.0pt;"></td><td style="width:96.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:30.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:33.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:55.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:21.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:33.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.75pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:9.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:85.00pt;"></td><td style="width:1.0pt;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="dei:EntityInteractiveDataCurrent" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6OWQ2YWIwZjcwYWZmNDE4ZmJjYmNhYzUyZTUyMmM0MjUvdGFibGVyYW5nZTo5ZDZhYjBmNzBhZmY0MThmYmNiY2FjNTJlNTIyYzQyNV8wLTItMS0xLTA_b210c515-409c-4974-b250-fa560444f5e8">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9746;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">No</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9744;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr></table></div><div style="text-indent:24.75pt;"><span><br/></span></div><div style="text-indent:24.75pt;"><span style="background-color:rgb(255,255,255, 0.0);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 an 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 style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:442.50pt;"><tr><td style="width:1.0pt;"></td><td style="width:121.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:12.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:12.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:12.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:6.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:199.75pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.75pt;"></td><td style="width:1.0pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:entityfilercategoryen" name="dei:EntityFilerCategory" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZDZjYjY4YTY2MTRmNDQ2Y2E0ZDc2YjAyMmNjMDAxYmEvdGFibGVyYW5nZTpkNmNiNjhhNjYxNGY0NDZjYTRkNzZiMDIyY2MwMDFiYV8wLTAtMS0xLTA_95cb473f-5861-4263-b8e8-8f36d221a17a">Large accelerated filer</ix:nonNumeric></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9746;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accelerated&#160;filer</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9744;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-accelerated filer</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9744;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Smaller&#160;reporting&#160;company</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:boolballotbox" name="dei:EntitySmallBusiness" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZDZjYjY4YTY2MTRmNDQ2Y2E0ZDc2YjAyMmNjMDAxYmEvdGFibGVyYW5nZTpkNmNiNjhhNjYxNGY0NDZjYTRkNzZiMDIyY2MwMDFiYV8xLTctMS0xLTA_addfa91d-dbff-4db6-9a32-381756dbfa13">&#9744;</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Emerging growth company</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:boolballotbox" name="dei:EntityEmergingGrowthCompany" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZDZjYjY4YTY2MTRmNDQ2Y2E0ZDc2YjAyMmNjMDAxYmEvdGFibGVyYW5nZTpkNmNiNjhhNjYxNGY0NDZjYTRkNzZiMDIyY2MwMDFiYV8yLTctMS0xLTA_5d743575-9fec-4d34-ab20-e787c53a1d27">&#9744;</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr></table></div><div style="text-indent:22.5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%;"> </span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#9744;</span></div><div style="text-indent:24.75pt;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 shell company (as defined in Rule 12b-2 of the Exchange Act).&#160;&#160;&#160;&#160; </span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:482.25pt;"><tr><td style="width:1.0pt;"></td><td style="width:96.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:30.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:33.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:55.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:10.00pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:21.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:33.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:31.75pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:9.25pt;"></td><td style="width:1.0pt;"></td><td style="width:1.0pt;"></td><td style="width:85.00pt;"></td><td style="width:1.0pt;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Yes</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:boolballotbox" name="dei:EntityShellCompany" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6OTA0YTYxN2NlNmJlNDY0Y2EyNWRiZjY3M2M5NTg2MTMvdGFibGVyYW5nZTo5MDRhNjE3Y2U2YmU0NjRjYTI1ZGJmNjczYzk1ODYxM18wLTMtMS0xLTA_03f5671e-2d8e-4293-b31a-c94bf0182ef7">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">No</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial Unicode MS',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#9746;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr></table></div><div style="text-indent:24.75pt;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;">As of <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt:datemonthdayyearen" name="dei:DocumentPeriodEndDate" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xNzI2_cdf11108-6395-404e-9e02-342be18b11fe">June 28, 2020</ix:nonNumeric>, there were <ix:nonFraction unitRef="shares" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt:numdotdecimal" name="dei:EntityCommonStockSharesOutstanding" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xNzQx_787ce38d-5c4f-4c20-9965-2faef38591f4">173,047,292</ix:nonFraction> shares of Common Stock, $.002 par value per share, of the registrant outstanding.</span></div><div style="margin-top:11pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:97.222%;"><tr><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:18.000%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="15" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div><span><br/></span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_7"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">INDEX</span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:7.516%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:82.773%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:3.711%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">PART&#160;I</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">FINANCIAL INFORMATION</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_10">3</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_10">Item&#160;1.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Financial Statements (interim periods unaudited)</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_10">3</a></span></div></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_13">Consolidated Statements of Operations for the three-month and six-month periods ended June 28, 2020 and June 30, 2019</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_13">3</a></span></div></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_16">Consolidated Statements of Comprehensive Income for the three-month and six-month periods ended June 28, 2020 and June 30, 2019</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_16">4</a></span></div></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_22">Consolidated Balance Sheets as of June 28, 2020 and December 31, 2019</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_22">5</a></span></div></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_28">Consolidated Statements of Cash Flows for the six-month periods ended June 28, 2020 and June 30, 2019</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_28">6</a></span></div></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_31">Consolidated Statements of Shareholders&#8217; Equity for the three-month and six-month periods ended June 28, 2020 and June 30, 2019</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_31">7</a></span></div></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_37">Notes to Consolidated Financial Statements</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_37">9</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_100">Item&#160;2.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_100">Management's Discussion and Analysis of Financial Condition and Results of Operations</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_100">29</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_103">Item&#160;3.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_103">Quantitative and Qualitative Disclosures About Market Risk</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_103">34</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_106">Item&#160;4.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_106">Controls and Procedures</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_106">34</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_109">PART&#160;II</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_109">OTHER INFORMATION</a></span></div></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_112">Item&#160;1.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_112">Legal Proceedings</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_112">35</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_115">Item&#160;1A.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_115">Risk Factors</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_115">35</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_118">Item&#160;2.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_118">Unregistered Sales of Equity Securities and Use of Proceeds</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_118">36</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_121">Item&#160;3.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_121">Defaults Upon Senior Securities</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_121">36</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_124">Item&#160;4.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_124">Mine Safety Disclosures</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_124">36</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_127">Item&#160;5.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_127">Other Information</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_127">36</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_130">Item&#160;6.</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_130">Exhibits</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_130">37</a></span></div></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_133">Signatures</a></span></div></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div style="text-align:right;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration: none;" href="#iec310d5d14154791acae03eee3bb73e6_133">38</a></span></div></td></tr></table></div><div style="text-align:center;"><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">2</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_10"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">PART I: FINANCIAL INFORMATION</span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM 1: FINANCIAL STATEMENTS</span></div><div id="iec310d5d14154791acae03eee3bb73e6_13"></div><div style="text-align:center;"><span><br/></span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">CONSOLIDATED STATEMENTS OF OPERATIONS</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(In thousands, except per share amounts)</span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:44.929%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:10.719%;"></td><td style="width:1.0%;"></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.719%;"></td><td style="width:1.0%;"></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.719%;"></td><td style="width:1.0%;"></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.724%;"></td><td style="width:1.0%;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></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:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(unaudited)</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(unaudited)</span></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-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Revenue</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy0xLTEtMS0w_e238d109-de6c-43be-9905-2556df51b898">169,097</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy0zLTEtMS0w_c961058e-8dc2-48c6-ba16-2d0ce4b5843d">199,047</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy01LTEtMS0w_aede307c-bece-48a1-b24d-d9513bdd501d">336,332</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy03LTEtMS0w_d66cdb14-7aec-4fab-b4c5-9f17ce2728a7">372,531</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cost of revenue</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC0xLTEtMS0w_381121b3-d484-40eb-ad76-b71e495224b9">50,320</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC0zLTEtMS0w_55f99371-6924-4430-8546-a81d53a12b72">50,967</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC01LTEtMS0w_a5af3a2b-2d5a-4d63-be6d-bca06cb8d897">91,520</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC03LTEtMS0w_b6bf5f6d-6520-4100-9b95-9fb53eafc8a2">97,251</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross margin</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS0xLTEtMS0w_cb7617a1-9385-40ef-b269-86f5ec596428">118,777</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS0zLTEtMS0w_5a4775c5-99fe-407c-bbb4-2a6d35ce2947">148,080</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS01LTEtMS0w_f1213937-0ce7-4090-875a-adf45911cd76">244,812</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS03LTEtMS0w_3a42cc0f-8fb3-4070-b848-683b37c5bff1">275,280</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Research, development, and engineering     expenses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi0xLTEtMS0w_e8f9937a-75ae-488a-82a3-9debd3e62a5e">30,397</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi0zLTEtMS0w_b2412fd0-748a-4ab1-bc6c-7b3ad15cefc1">28,079</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi01LTEtMS0w_85e82b88-8814-44e9-ab56-92e92256f695">66,343</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi03LTEtMS0w_bff4cc42-5d61-42fe-92d8-76b268a472df">58,321</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Selling, general, and administrative expenses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy0xLTEtMS0w_b1f26be3-2324-40db-8b2f-a00a35d4de23">60,153</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy0zLTEtMS0w_a54315ca-a40e-4c66-a1b6-5a906fced3c0">68,245</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy01LTEtMS0w_4642e85c-e384-4a23-910b-b4ecd740bc47">129,291</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy03LTEtMS0w_e21469da-c237-40cd-bd17-f12be0fd2774">135,056</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Restructuring charges (Note 16)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC0xLTEtMS03NzI1_75523842-12c5-4d7c-9260-1dccaf6de270">14,798</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC0zLTEtMS03NzI3_b356fd20-a195-44e3-91b4-bea1cce1ec0a">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC01LTEtMS03NzI5_7843de83-e613-4cf2-9144-aabefaad618f">14,798</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC03LTEtMS03NzMx_d21d82ac-2c5c-4bad-9150-f2806c5e441d">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Intangible asset impairment charges (Note 8)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS0xLTEtMS03NzI1_642c447b-10c6-4726-a808-4b8612616c7c">19,571</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS0zLTEtMS03NzI3_2c285c91-4d75-48ac-87cf-ec49c1112572">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS01LTEtMS03NzI5_3bd2b575-3f20-481b-8070-4320eee25ce8">19,571</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS03LTEtMS03NzMx_03f41652-670e-4436-9e0c-229478f514d8">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Operating income (loss)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtMS0xLTEtMA_4e28bdeb-5b5b-4e9c-a2f8-d7928986d0ca">6,142</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtMy0xLTEtMA_af6c6324-d2e7-4aa8-a0a8-9b97cfa8c8be">51,756</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtNS0xLTEtMA_e9db0964-1711-4340-bd78-d6217e362e2c">14,809</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtNy0xLTEtMA_260266ef-20a6-471f-987e-eaadc6e48bcd">81,903</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency gain (loss)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtMS0xLTEtMA_0981cb32-7b4b-485d-bf9a-71da620afe67">336</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtMy0xLTEtMA_cdc5fe9d-4fc6-4d24-8089-85aeeaf04ea6">140</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtNS0xLTEtMA_6f4acd5e-29ae-4363-b150-5174953b238a">2,667</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtNy0xLTEtMA_f8c49a8d-487c-487c-95e6-a685bd5c1dcb">108</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Investment income</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNonoperating" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItMS0xLTEtMA_fb9de3c5-a5fc-496f-b3a4-2e64fb1e2519">3,291</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNonoperating" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItMy0xLTEtMA_80313d4c-ca36-416b-be20-dc518bfa272d">5,223</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNonoperating" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItNS0xLTEtMA_fcaafafa-d8e1-4176-94b3-e54efa995a92">8,520</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNonoperating" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItNy0xLTEtMA_5ba6f422-1bb3-44ab-ab84-8207fe86fc71">10,128</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other income (expense)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtMS0xLTEtMA_cfe336a3-6853-4bd8-af4c-146e6456ab0b">203</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtMy0xLTEtMA_72c21930-770f-4349-880a-78a84526f324">144</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtNS0xLTEtMA_c1390134-5fb5-4133-bdb4-b161cc94ddc0">20</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtNy0xLTEtMA_791a0630-2e50-437b-bef6-cfe7d6cd9feb">783</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income (loss) before income tax expense (benefit)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtMS0xLTEtMA_d58e0a37-9e22-46c0-8ef5-701db8bb6ef9">2,312</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtMy0xLTEtMA_be2a7ed6-15ae-4299-b8a3-a917bdeeb712">56,975</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtNS0xLTEtMA_781af8cf-1b1a-4c0c-bbfa-b90c86690e2e">20,682</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtNy0xLTEtMA_ce4bb35b-42e3-4549-8995-d3002df0c7e1">92,706</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income tax expense (benefit)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtMS0xLTEtMA_9a18caf9-cf75-4199-8cf7-07167656fe88">1,170</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtMy0xLTEtMA_4a9ca484-1c36-446d-8229-4d5fa574e134">8,226</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtNS0xLTEtMA_02e7f427-75c6-40dd-8dc6-1b663349d910">1,347</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtNy0xLTEtMA_257fcc1e-eef6-49f9-99e9-c1e4ec851834">10,853</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income (loss)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtMS0xLTEtMA_00cc20df-c7e9-42dd-8db8-9b0b65947788">1,142</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtMy0xLTEtMA_414d7e79-9384-40b0-a324-51aa88cdaf4d">48,749</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtNS0xLTEtMA_63b87a27-4ea8-4f70-acd2-a2b97d9f372a">19,335</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtNy0xLTEtMA_b0a9c6fc-6c81-4336-b54b-0d0edd76d15c">81,853</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="24" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income (loss) per weighted-average common and common-equivalent share:</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Basic</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usdPerShare" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktMS0xLTEtMA_8713f14d-a9ee-4e57-97d3-4ab1951d5d5c">0.01</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktMy0xLTEtMA_8f4a1cc6-5f1d-4482-8a2e-746f432ac2a1">0.28</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktNS0xLTEtMA_04c977b9-bafe-4475-a9ca-91daeaef8096">0.11</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktNy0xLTEtMA_9c6efd94-dac2-4429-8e12-ba7104be82eb">0.48</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Diluted</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usdPerShare" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtMS0xLTEtMA_440ffc7a-5745-4904-8485-8274c8f89ab3">0.01</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtMy0xLTEtMA_36f76418-08da-4397-b02c-a87ae5bcb8f1">0.28</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtNS0xLTEtMA_6a1b7360-1528-4a8f-8841-c595b08264c8">0.11</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtNy0xLTEtMA_888cb76b-5697-4bf2-93c1-a3a1d1b3f698">0.47</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:6pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="24" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-average common and common-equivalent shares outstanding:</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:middle;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Basic</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtMS0xLTEtMA_e291411a-392c-41dd-8d35-e6f88456b04e">172,283</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtMy0xLTEtMA_c0aa8b9c-36c9-4175-bf32-4542a89619f0">171,318</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtNS0xLTEtMA_9a01ce95-04ea-4fe5-9e50-8d6a453a2eaa">172,345</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtNy0xLTEtMA_420c5743-b4b5-4e18-9009-c15e97ce7f6b">171,209</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:middle;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Diluted</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtMS0xLTEtMA_ef7596d3-16e0-4def-b310-4c94e3634bd1">172,283</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtMy0xLTEtMA_49f9820e-f6a0-4ec1-a7a3-689ecbbfd7ef">175,448</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtNS0xLTEtMA_082c22f3-d863-45a1-8de6-39035bd9aa9f">175,499</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtNy0xLTEtMA_4a70494e-d421-43aa-a688-9fa11cf9a42b">175,528</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:14pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash dividends per common share</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="INF" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtMS0xLTEtMA_4fdb9c04-3544-4e8c-8442-bc676725507e">0.055</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="INF" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtMy0xLTEtMA_c0e38046-c05e-4be6-aaad-874711648a00">0.050</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="INF" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtNS0xLTEtMA_a1f328d0-933e-462e-9d77-d8ef81bc5763">0.110</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:middle;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="INF" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtNy0xLTEtMA_889fa862-3ce0-4182-87d6-5947bb9e17ce">0.100</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:middle;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td></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><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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">3</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_16"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(In thousands)</span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"></td><td style="width:42.771%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:11.402%;"></td><td style="width:1.0%;"></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:11.107%;"></td><td style="width:1.0%;"></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:11.402%;"></td><td style="width:1.0%;"></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:11.110%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(unaudited)</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(unaudited)</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income (loss)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy0xLTEtMS0w_120a8246-8afc-4803-b5fa-db87e03a516e">1,142</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy0zLTEtMS0w_1e182018-f42c-4d7f-be0f-e651253bf002">48,749</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy01LTEtMS0w_53a5a3b6-acfd-4d1e-a45d-388c87ca036b">19,335</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy03LTEtMS0w_dbbbacb4-3e01-40b9-94e3-12b33dd01934">81,853</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other comprehensive income, net of tax:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right: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><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="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Available-for-sale investments:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net unrealized gain (loss), net of tax of ($836) and $239 in the three-month periods and net of tax of ($1,788) and $507 in the six-month periods, respectively</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtMS0xLTEtMA_935d7570-d09c-4fc6-acc7-d1bb68b62b49">12,451</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtMy0xLTEtMA_87c20b04-3761-4de4-85cc-d5f1fd6af4f1">2,311</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtNS0xLTEtMA_a83a2e63-6a07-4702-8d1b-44af54c6c408">8,590</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtNy0xLTEtMA_c10f4293-c51e-4b20-98fc-411ccb23fa2c">4,562</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of credit (recovery) loss on investments into current operations</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItMS0xLTEtMA_f070eeb6-5d71-47b1-a754-c7d0a6a0325d">85</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItMy0xLTEtMA_b2b281f2-571a-4304-a423-73119474eac1">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItNS0xLTEtNTUzOQ_33f68f61-cb7b-4278-9f23-e1bfc65550b5">75</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItNy0xLTEtNTUzOQ_3c4c26c0-db2e-475d-9d32-f6eac0bbd833">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of net realized (gain) loss into current operations</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtMS0xLTEtMA_40dd6a37-705b-48b8-9ada-11199d403096">955</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtMy0xLTEtMA_de400199-9c92-4a5d-8604-05e0e7929738">382</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtNS0xLTEtMA_a7942e85-4bef-4b12-8fd8-af98bc625291">2,805</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtNy0xLTEtMA_6f61fe4c-be19-4859-98f9-99b205d043c6">422</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net change related to available-for-sale investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtMS0xLTEtMA_ec2ab830-b5ff-474c-8805-ef8b72722bd2">11,411</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtMy0xLTEtMA_2d0a8ba9-9147-4d2b-9d6f-3ee84f6155e0">1,929</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtNS0xLTEtMA_e3c78d4f-a187-4f27-8ed6-17c9523b5360">5,860</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtNy0xLTEtMA_7ea4446f-2fb4-42d4-beaa-5218012619df">4,140</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency translation adjustments:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency translation adjustments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctMS0xLTEtMA_bafb6003-70f7-40d6-bacf-bfb8e51d54b3">1,903</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctMy0xLTEtMA_61d07705-e3bf-4a74-9545-c926b8961232">663</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctNS0xLTEtMA_02bb9b07-b359-4534-96b0-75b800a93438">5,462</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctNy0xLTEtMA_02a17057-e8c2-4d81-8cb3-6e7d8ba5628d">445</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net change related to foreign currency translation adjustments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtMS0xLTEtMA_5ede8a13-5eef-4c0c-a971-784f5f527fdb">1,903</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtMy0xLTEtMA_70d8a65f-2e12-482e-addf-efa2567c38d5">663</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtNS0xLTEtMA_d4b21f7c-247a-4caa-a512-f33a3d2c0485">5,462</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtNy0xLTEtMA_464e7fa4-00f6-44d3-b6cf-79b366e15a0c">445</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other comprehensive income, net of tax</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtMS0xLTEtMA_aa42f469-1d99-484e-a6b7-656e6f2b09d6">13,314</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtMy0xLTEtMA_1283ed55-470d-40f4-a433-f1cfde9183c4">1,266</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtNS0xLTEtMA_46538d36-5ad1-4b66-9f86-e5110961b1a9">398</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtNy0xLTEtMA_5201452b-3098-4624-87f4-e4965f7f34f8">3,695</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total comprehensive income</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtMS0xLTEtMA_8ddc713e-8cba-4ecb-9e29-f36fe508cdb6">12,172</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtMy0xLTEtMA_c825896f-ac24-4ebf-a5a5-b4daa577b4ca">50,015</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtNS0xLTEtMA_e6a48a6c-7c6b-4bbc-81ec-40e6ee16819d">19,733</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtNy0xLTEtMA_6d988083-9100-4d02-a920-1a1955dcb10c">85,548</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><span><br/></span></div><div style="text-align:center;margin-top:12pt;"><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="background-color:rgb(255,255,255, 0.0);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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">4</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_22"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">CONSOLIDATED BALANCE SHEETS</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(In thousands)</span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:65.349%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:13.080%;"></td><td style="width:1.0%;"></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:14.839%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(unaudited)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">ASSETS</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current assets:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash and cash equivalents</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNC0xLTEtMS0w_c0705869-c397-4a2a-bc5e-7d756d171436">286,021</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNC0zLTEtMS0w_b3431938-0a07-4109-870d-ceeed77dcecb">171,431</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNS0xLTEtMS0w_41b5826e-b733-42f9-b2cf-155b2717ce2d">143,084</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNS0zLTEtMS0w_5f1fd185-4492-4f96-a3ab-e1be29809c8f">240,470</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accounts receivable, less reserves of $2,235 and $1,821 in 2020 and 2019, respectively</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNi0xLTEtMS0w_e9186495-06bb-44ca-bd9e-5d87449c5b99">111,671</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNi0zLTEtMS0w_fa566fad-2d9f-4fd7-ad42-043532cecf27">103,447</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unbilled revenue</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNy0xLTEtMS0w_d45776b3-66e2-4b7e-a324-ecb3683584d3">978</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnbilledReceivablesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNy0zLTEtMS0w_d885792a-9d52-4357-b575-f6d10e066f0f">4,782</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Inventories</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOC0xLTEtMS0w_c7ef4426-10ab-4ae6-8468-8401ebde6861">52,953</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOC0zLTEtMS0w_cebd7b10-4f50-4f4b-9436-89e1b7b54e12">60,261</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Prepaid expenses and other current assets</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOS0xLTEtMS0w_c36f888c-b550-4cf2-81ca-408550409a98">51,768</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOS0zLTEtMS0w_89681a30-dd3d-4d80-aec9-0c1eb5f48f7d">26,840</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total current assets</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTAtMS0xLTEtMA_d02c04a3-7d1f-49d5-918c-7c95025f080f">646,475</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTAtMy0xLTEtMA_a1720b38-0a62-41ed-9202-4477201f7f1c">607,231</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current investments, amortized cost of $461,948 and $431,633 in 2020 and 2019, respectively, allowance for expected credit losses of $75 and $0 in 2020 and 2019, respectively</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTEtMS0xLTEtMA_c461fbe9-7917-47aa-950d-053b7ebb9296">467,087</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTEtMy0xLTEtMA_66e09396-0191-403e-8499-8c3b6cf6f57b">433,452</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Property, plant, and equipment, net</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTItMS0xLTEtMA_7fec8fb4-1a48-4b0b-95fd-eb399a1036f0">83,936</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTItMy0xLTEtMA_19ebf797-f325-48fd-8ba5-98fb831cdb8f">89,443</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Operating lease assets</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTMtMS0xLTEtMA_f59c1f98-2602-4b21-8be6-63bdef403098">25,819</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTMtMy0xLTEtMA_913795c0-ee66-4d7d-b297-33b9ed79cfaa">17,522</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Goodwill</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTQtMS0xLTEtMA_048ad979-611e-4005-ae67-c501659717eb">242,436</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTQtMy0xLTEtMA_29f9fa28-bb3f-41d6-8eef-6d6693661cd7">243,445</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Intangible assets, net</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTUtMS0xLTEtMA_15abd765-2c36-4cfe-9666-f3d91386ed93">17,337</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTUtMy0xLTEtMA_d228d672-a819-495e-8e4e-a6bc6749fd89">39,490</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Deferred income taxes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTYtMS0xLTEtMA_d17e0ec3-3550-4224-a2a3-4e27d587f7a0">443,732</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTYtMy0xLTEtMA_d1f76fc5-4d7f-40fe-9315-372791588875">449,519</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other assets</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTctMS0xLTEtMA_eaef90ed-5ed9-458a-9121-20097cd4b38a">8,042</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTctMy0xLTEtMA_e7dfd43f-1d9a-436f-ad6a-39aac6c39893">5,833</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total assets</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTgtMS0xLTEtMA_a64b31e0-0997-4574-a6a0-c663ae0be0b5">1,934,864</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTgtMy0xLTEtMA_4a67851f-9df2-4a93-a4ea-31e9f62169d1">1,885,935</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:12pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current liabilities:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accounts payable</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjItMS0xLTEtMA_5cb65ed1-1a83-456b-9431-f18485e6b546">17,999</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjItMy0xLTEtMA_b65cfa38-7c21-4826-b0a2-07cce7e69db4">17,866</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accrued expenses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjMtMS0xLTEtMA_271ba4de-a52c-47a1-9f7a-9dc9d2a4a433">66,264</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjMtMy0xLTEtMA_4b21704a-1864-4515-9998-e6f37002f7fa">52,199</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accrued income taxes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjQtMS0xLTEtMA_ac025a58-d397-4aee-bb18-406cd67f6c77">5,952</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjQtMy0xLTEtMA_152372c9-1e5f-4b1b-ba55-4a8fb43ef302">30,333</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Deferred revenue and customer deposits</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjUtMS0xLTEtMA_2e1546f6-4a47-4742-85bd-9f4079e530d9">46,738</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjUtMy0xLTEtMA_5e961ca6-3ce4-4536-88a6-342ed5c2eca0">14,432</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Operating lease liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjYtMS0xLTEtMA_7a5c7c4e-9adc-48c5-909c-842ac00a293e">7,628</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjYtMy0xLTEtMA_f1aebf24-7001-4766-9f8d-6d022dad6fd7">5,647</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total current liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjctMS0xLTEtMA_c1fbf815-060b-4001-a2ed-53bf2a8bd3d5">144,581</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjctMy0xLTEtMA_81769bae-6d98-474c-b6c2-0263b396c72a">120,477</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current operating lease liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjgtMS0xLTEtMA_4ffdc722-80f6-453a-8a2a-5d8adf37150c">21,208</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjgtMy0xLTEtMA_ff58a8a1-8033-40dc-afc0-b00eb120975e">12,326</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Deferred income taxes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjktMS0xLTEtMA_22357cae-ef21-4b29-b0af-9ee17268c805">326,295</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjktMy0xLTEtMA_be945826-cebc-434c-a9ab-1814596632d0">332,344</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reserve for income taxes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzAtMS0xLTEtMA_5f523b16-ea22-4584-9e3a-dc51e575416e">12,302</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzAtMy0xLTEtMA_5966a81d-3d1a-48b8-8d64-0a7d12510822">11,563</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current accrued income taxes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxes" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzEtMS0xLTEtMA_8bf8f20d-84db-4393-9c4d-67c6d872d8e7">48,915</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxes" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzEtMy0xLTEtMA_3bc9c2c4-f2cf-4181-9846-63b7fd2f1c8f">51,113</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzItMS0xLTEtMA_78f41288-f86d-4226-ae4b-25bca1aaff88">5,085</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzItMy0xLTEtMA_53cb7e45-62dc-4320-8ddd-bb0dc2af71f1">2,402</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzMtMS0xLTEtMA_76f55253-96c5-4f3b-a88b-13f2e9b6edf3">558,386</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzMtMy0xLTEtMA_40bc7e04-e5d3-481d-9cd9-61f59bf5b786">530,225</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:12pt;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shareholders&#8217; equity:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Preferred stock, $.01 par value &#8211; Authorized: 400 shares in 2020 and 2019, respectively, no shares issued and outstanding</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:PreferredStockValueOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzYtMS0xLTEtMA_cc371cb3-da5f-405d-86e2-73261e27f865">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:PreferredStockValueOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzYtMy0xLTEtMA_82e7b18f-854b-40ed-a6df-8d5ac155f8b4">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Common stock, $.002 par value &#8211; Authorized: 300,000 shares in 2020 and 2019, respectively, issued and outstanding: 173,047 and 172,440 shares in 2020 and 2019, respectively</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzctMS0xLTEtMA_dc24e707-3e7a-42ba-819d-8d5efd9d117f">346</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzctMy0xLTEtMA_8d1fd814-7881-4327-880a-e4778740fd59">345</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Additional paid-in capital</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzgtMS0xLTEtMA_880d5226-3672-4c28-ba0c-6d642442c34b">710,412</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzgtMy0xLTEtMA_56ca74b4-08bf-4554-8b9f-8a319dbc6991">639,372</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Retained earnings</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzktMS0xLTEtMA_d11ad71e-dcdf-413b-a390-f487cb3c9461">702,597</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzktMy0xLTEtMA_69560710-c64a-4bc4-8110-a55ecb696bc8">753,268</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated other comprehensive loss, net of tax</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDAtMS0xLTEtMA_4eb6b5a0-653d-4fa6-98b7-176c5f55074b">36,877</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDAtMy0xLTEtMA_4c1fd573-97e9-4661-b6ae-51b2be15d575">37,275</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total shareholders&#8217; equity</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDEtMS0xLTEtMA_2e3fc57d-2d8f-4280-90e9-0e2ec4c81200">1,376,478</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDEtMy0xLTEtMA_0991d4c7-a0c6-481a-bb66-4b6dc56495e6">1,355,710</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total liabilities and shareholders' equity</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDItMS0xLTEtMA_04e53b88-ebd5-4a07-86e8-cf4f15df6d3e">1,934,864</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDItMy0xLTEtMA_5e99ca63-7e27-4c50-8d91-baa50b85165b">1,885,935</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:center;"><span><br/></span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">5</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_28"></div><hr style="page-break-after:always"/><div style="min-height:45pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%;">COGNEX CORPORATION</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%;">CONSOLIDATED STATEMENTS OF CASH FLOWS</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">(In thousands)</span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:63.204%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:15.105%;"></td><td style="width:1.0%;"></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.961%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(unaudited)</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash flows from operating activities:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNC0xLTEtMS0w_b01ece10-f117-4ee8-b65b-03516dc27ac7">19,335</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNC0zLTEtMS0w_bc302122-d762-44c2-a791-2d94c5be598e">81,853</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Adjustments to reconcile net income to net cash provided by operating activities:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Stock-based compensation expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockOptionPlanExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNi0xLTEtMS0w_645ce515-3805-42b8-a343-9bf210970dea">22,808</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockOptionPlanExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNi0zLTEtMS0w_bdb6173e-ab45-41fc-98bc-a399e4b3bc06">23,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Depreciation of property, plant, and equipment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNy0xLTEtMS0w_b8a5d1b0-15ef-4fdc-85a7-028e22e57a2a">11,162</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNy0zLTEtMS0w_23e292be-8d59-4b5b-87e6-ae4a90bf159e">10,537</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amortization of intangible assets</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOC0xLTEtMS0w_f2089975-968a-4631-be82-8a515c46eb72">2,582</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOC0zLTEtMS0w_256d0cb3-c0ac-4dea-b1f7-b9994ce9aa3a">1,538</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Intangible asset impairment charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0xLTEtMS03NjQ3_9474e9b3-aec2-4451-b838-ff09c10dd0bc">19,571</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0zLTEtMS03NzE5_5590a25f-cfb5-437c-a6f4-0ecebb66cd35">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Excess and obsolete inventory charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ExcessAndObsoleteInventoryCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMS0xLTEtNzY0OQ_40e4e753-594b-46ee-8904-94e8fcc5d133">8,783</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ExcessAndObsoleteInventoryCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMy0xLTEtNzcxNw_efa7e132-74e8-4549-a09a-d726dd52b7a3">1,713</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Operating lease asset impairment charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseImpairmentLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMS0xLTEtNzcxNQ_c514f386-0b40-4e2e-ae20-0981b3ae8668">2,534</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:OperatingLeaseImpairmentLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMy0xLTEtNzcyMQ_5c6cf17c-5d9b-4eb4-982d-8ac805b630c2">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amortization of discounts or premiums on investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0xLTEtMS0w_0892c830-396a-4b94-a5c1-f6ede283b0cb">328</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0zLTEtMS0w_c9926f79-4fba-4b1b-b041-12b6fe28428b">342</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Realized gain on sale of investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMS0xLTEtMA_d5b41331-e56e-41e3-a65e-fc751edac8e6">2,805</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMy0xLTEtMA_2a74b1bf-1505-474c-97dd-37c18c6d1180">422</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Credit loss on investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMS0xLTEtMA_dedfaf81-3b80-4a44-b1a2-c5a5901b328f">75</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMy0xLTEtMA_2bdf36df-5f97-49aa-bf05-2ca9ba5f33c9">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Revaluation of contingent consideration</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTItMS0xLTEtMA_dd37aba0-3ad1-46a1-a14f-85181e2c79d2">114</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTItMy0xLTEtMA_380f5587-f7aa-4285-afb1-94b12fd3f74c">863</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Change in deferred income taxes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTMtMS0xLTEtMA_222f7d31-fed7-48bd-bb78-d06b7e3b0259">1,395</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTMtMy0xLTEtMA_96234e28-b7db-4524-a8a4-bdc35c0b7913">1,311</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:36pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Change in operating assets and liabilities:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accounts receivable</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTUtMS0xLTEtMA_f0d18236-c673-4e67-b185-6db8fd59546b">8,957</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTUtMy0xLTEtMA_9d943caf-7096-4081-b2bd-e14f6613dec8">11,383</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unbilled revenue</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTYtMS0xLTEtMA_efb527b5-7da7-4389-b874-440316e1995b">3,804</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTYtMy0xLTEtMA_c7734ae1-62de-4ad4-b231-ba2fdfc13669">1,989</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Inventories</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTctMS0xLTEtMA_79bcde5d-dbe8-476d-b97d-679406737873">1,664</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTctMy0xLTEtMA_42a193a8-3255-42c2-bd9d-a13a0b5ee2a9">8,681</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Prepaid expenses and other current assets</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTktMS0xLTEtMA_d73090a9-481c-4582-8aa4-c239bd5dd284">25,461</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTktMy0xLTEtMA_feedcf59-9a54-4cd6-8b87-8e587a89df0c">463</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accounts payable</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjAtMS0xLTEtMA_63239a84-a546-45ad-a9bb-658acae4ff15">143</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjAtMy0xLTEtMA_33277ee1-1418-4c94-8f1b-4a49a5e61133">4,528</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accrued expenses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjEtMS0xLTEtMA_4328e2b4-ad66-4ce9-8155-996a830bb84b">15,806</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjEtMy0xLTEtMA_f950b5c2-3e30-4e71-b839-3bcceb3470f3">12,270</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accrued income taxes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedTaxesPayable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjItMS0xLTEtMA_b07cb081-c5bc-4bed-bc8c-2cc5dfdb89c3">25,411</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedTaxesPayable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjItMy0xLTEtMA_b7be174a-4fc9-4845-8508-843930836262">4,000</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Deferred revenue and customer deposits</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjMtMS0xLTEtMA_0e5b15d4-276e-496b-8fe6-c72501127b22">32,586</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjMtMy0xLTEtMA_b76736a6-6451-4a2f-84a7-60c21e3f547a">8,575</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:47.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjQtMS0xLTEtMA_057cc352-1ec4-4186-8a7f-15586e4d853d">2,520</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjQtMy0xLTEtMA_6567282e-1b9c-4e6b-8e54-01bf98251a94">1,190</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net cash provided by operating activities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjUtMS0xLTEtMA_5582ab41-fbe9-46e1-b824-55b9c9faae63">79,020</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjUtMy0xLTEtMA_627c2b5f-a3d6-4eaf-9223-3467b419819a">120,150</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash flows from investing activities:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Purchases of investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjctMS0xLTEtMA_7df4a9b6-6290-49a8-8cec-048bf03222a4">317,540</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjctMy0xLTEtMA_23bc6469-876a-416c-8980-14dd7bfc30cb">664,896</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Maturities and sales of investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjgtMS0xLTEtMA_8efc4d2e-4e15-4355-a025-0566dae03bd3">387,765</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjgtMy0xLTEtMA_6b78d434-d908-449e-a729-5bb5f5bf48a6">587,175</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Purchases of property, plant, and equipment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjktMS0xLTEtMA_6b657fc3-ca82-47cd-8377-65a1531a965b">6,985</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjktMy0xLTEtMA_9190b5f5-9999-4965-8e22-b90535b23762">8,969</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net cash provided by (used in) investing activities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzMtMS0xLTEtMA_ccae7cb5-ae2a-4eb6-b497-0353f91f508d">63,240</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzMtMy0xLTEtMA_eb5a54ae-ca3b-4dee-9b5b-b619e41c2a69">86,690</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash flows from financing activities:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Issuance of common stock under stock plans</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzUtMS0xLTEtMA_90e5f882-5b66-415b-95a0-4b6f001155f7">48,235</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzUtMy0xLTEtMA_3877a87f-b571-41c6-8b7a-fcd8e4d6f1af">26,417</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Repurchase of common stock</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzYtMS0xLTEtMA_3b267641-1227-4c6a-adf1-16682d9c03b3">51,036</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRepurchaseOfCommonStock" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzYtMy0xLTEtMA_d4ac7bc8-733f-4b10-89ef-70a5fa78c31a">61,690</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Payment of dividends</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDividendsCommonStock" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzctMS0xLTEtMA_a1fd876a-7a64-4ee2-97c4-e834a8cdf90a">18,972</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDividendsCommonStock" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzctMy0xLTEtMA_f15e300d-84df-47de-b4a2-7fd09feb7fe0">17,146</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Payment of contingent consideration</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzgtMS0xLTEtMA_7360f7cf-da67-44b7-b0b2-6b0cc2191c52">1,039</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:zerodash" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzgtMy0xLTEtMA_0039bff5-e2d2-426a-96f0-df73023123e3">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net cash provided by (used in) financing activities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzktMS0xLTEtMA_15c4a551-f59e-4374-95b7-caa320675013">22,812</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzktMy0xLTEtMA_27b22414-8a11-4c44-ad80-2a8fd59b627b">52,419</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Effect of foreign exchange rate changes on cash and cash equivalents</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDAtMS0xLTEtMA_2049e831-7ca6-4f70-ac48-056aba2ef9ee">4,858</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDAtMy0xLTEtMA_3e338f7b-26e2-494c-b51c-5f663e7ff7fb">149</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net change in cash and cash equivalents</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDEtMS0xLTEtMA_29eeb03d-208d-45c4-9019-af208e0622c2">114,590</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDEtMy0xLTEtMA_5d26c9ba-7710-48b6-9be5-df82e85b9eae">19,108</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash and cash equivalents at beginning of period</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDItMS0xLTEtMA_bb97c2f6-0806-4604-b5d1-d87169d426ae">171,431</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i0b0706b68e684f83aa546dd2533ce44b_I20181231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDItMy0xLTEtMA_1e78da8a-8ba4-4372-930a-b7a50b14c8cc">108,212</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash and cash equivalents at end of period</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDMtMS0xLTEtMA_00fdf7a0-7801-412a-bc56-fb48c508baae">286,021</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDMtMy0xLTEtMA_37214259-52d3-4d12-8750-5496aa07385d">89,104</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></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 style="background-color:rgb(255,255,255, 0.0);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="position:relative;width:100%;height:40.5pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">6</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_31"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(In thousands)</span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"></td><td style="width:28.044%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:6.983%;"></td><td style="width:1.0%;"></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:7.278%;"></td><td style="width:1.0%;"></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:7.867%;"></td><td style="width:1.0%;"></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:7.572%;"></td><td style="width:1.0%;"></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:12.580%;"></td><td style="width:1.0%;"></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:11.996%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Common Stock</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Additional<br/>Paid-in Capital</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Retained Earnings</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Other<br/>Comprehensive<br/>Loss</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total<br/>Shareholders&#8217;<br/>Equity</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Par&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of March 29, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i9003d025fdf74baf9cfde117be3e31e3_I20200329" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi0xLTEtMS0w_de8df119-50ff-4664-b3b3-02d6d78c2df8">171,688</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i9003d025fdf74baf9cfde117be3e31e3_I20200329" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi0zLTEtMS0w_ca16d75d-cee3-4316-8612-60d10c7ab214">344</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i6d3d9cdf100e49429e0096f15c8f51c8_I20200329" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi01LTEtMS0w_c8fcdef7-e0f0-4544-8160-7d0a2f951e07">664,132</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i938a629326a0439aa43ad35cdac85063_I20200329" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi03LTEtMS0w_a40f0406-47cf-4505-8045-f427287ecf14">713,208</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i1e9f2b6e17ba467f9e0e9d684bbde89e_I20200329" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi05LTEtMS0w_0d36a1f3-cc48-441a-9240-7cf4377ebbb1">50,191</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id8519e56581148ae8b301b041e6ee876_I20200329" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi0xMS0xLTEtMA_400e7a67-9465-48e3-9b4d-043fb4bacf19">1,327,493</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Issuance of common stock under stock plans</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy0xLTEtMS0w_37f4079d-ad2a-4508-9663-30bdfef93807">1,359</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy0zLTEtMS0w_e21935ed-1c0e-4071-8c4b-18ebdb6a6fb7">2</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i8a9e1ef6774044ef9190aafe3633273c_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy01LTEtMS0w_9d4addaa-0edd-4681-b432-0b3c3866c381">38,262</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy0xMS0xLTEtMA_a743c971-91a3-4d47-8676-5cb51937bc1d">38,264</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Repurchase of common stock</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:StockRepurchasedDuringPeriodShares" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC0xLTEtMS0w_c1e327f6-dea6-46ab-923a-1c29d767acd1">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC0zLTEtMS0w_eeabed37-0453-490a-977a-d0c5027947b3">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC03LTEtMS0w_14bf0516-1403-4b13-b77d-29a49f64c049">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC0xMS0xLTEtMA_56d6452e-ba27-4ac9-ba57-d4c5f4a3269f">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Stock-based compensation expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i8a9e1ef6774044ef9190aafe3633273c_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNS01LTEtMS0w_a4284f19-7736-4cf2-bcbc-7f9e540e4931">8,018</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNS0xMS0xLTEtMA_734db27f-d6d6-487f-9f54-2a9e21338f11">8,018</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Payment of dividends</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNi03LTEtMS0w_092a1b4a-a147-41ac-96f4-5f3a34ab1c44">9,469</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNi0xMS0xLTEtMA_9ff8f1c0-80c0-4726-8857-fb850af1a846">9,469</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income (loss)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfOC03LTEtMS0w_3a61b284-5867-4521-ac11-a902a0e1b7c4">1,142</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfOC0xMS0xLTEtMA_721d8b07-8cc9-4835-956f-4b448a46e4c7">1,142</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($836)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTEtOS0xLTEtMA_60f31e0c-b865-4643-b12c-b5730a528993">12,451</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTEtMTEtMS0xLTA_20453335-9fbd-465f-8ab6-5b0571a0f739">12,451</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of credit (recovery) loss on investments </span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628" decimals="-3" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTItOS0xLTEtMA_c8b9f4ab-d59f-4abf-a3f8-f8e91cfea53c">85</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTItMTEtMS0xLTA_bd9b6e14-4d27-4489-8353-9cce85b5378e">85</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTMtOS0xLTEtMA_708ce4a4-470c-4f94-abae-be42e0ef0f25">955</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTMtMTEtMS0xLTA_1134db1a-209c-4e50-8e68-fd13839429e3">955</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency translation adjustment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTQtOS0xLTEtMA_d1f3c7fd-9d5e-4367-ae97-1bd78a96622e">1,903</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTQtMTEtMS0xLTA_2d489661-a47a-4670-bf79-ca58df10759b">1,903</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020 (unaudited)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtMS0xLTEtMA_ab76d46c-98b8-4904-a526-1b66a8f9e66e">173,047</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtMy0xLTEtMA_cec0a6e1-efe3-42bb-bd21-22bdd4d468b2">346</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icb2e5217f55f406289b5cabb8359f389_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtNS0xLTEtMA_a6794602-a3dd-41c2-b2b9-671bbf2082b5">710,412</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic26f54781e5c4a8886eddc97b739c7f5_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtNy0xLTEtMA_46a0dcdd-5b16-4d1a-9099-95a2c5ba0613">702,597</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i96d78535cce74acdbf73cf711e8d9464_I20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtOS0xLTEtMA_88f281d6-5180-45a4-aeb8-cdd2c0b4fb0f">36,877</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtMTEtMS0xLTA_e8b97798-656f-4b35-adf0-3e0c1cf4017f">1,376,478</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.561%;"><tr><td style="width:1.0%;"></td><td style="width:28.543%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:7.397%;"></td><td style="width:1.0%;"></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:7.397%;"></td><td style="width:1.0%;"></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:7.838%;"></td><td style="width:1.0%;"></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:7.544%;"></td><td style="width:1.0%;"></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:12.537%;"></td><td style="width:1.0%;"></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:11.074%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Common Stock</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Additional<br/>Paid-in Capital</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Retained Earnings</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Other<br/>Comprehensive<br/>Loss</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total<br/>Shareholders&#8217;<br/>Equity</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Par&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of March 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="iaec1d0005f3841edaa0f1a67e2658cbe_I20190331" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi0xLTEtMS0w_f9200f7f-84da-4a32-863c-6f11d84cf3e9">171,537</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iaec1d0005f3841edaa0f1a67e2658cbe_I20190331" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi0zLTEtMS0w_90318ec4-3866-471c-a476-75359619172d">343</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if439bca2e85b44968f4a4ab1683fd0e1_I20190331" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi01LTEtMS0w_6179c174-81fe-4e8f-bbdc-021849598e6e">555,834</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ib57c714e8813465ab9a6f10dbad1be98_I20190331" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi03LTEtMS0w_0e60edc7-16bf-40f2-8cfd-9b917a124ece">670,754</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i34398295dff14da1a866d30e00f8aa89_I20190331" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi05LTEtMS0w_f8d156c5-f935-418d-9567-2b7354acf20e">38,072</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ib3897b228f05439eb381f0e036a97929_I20190331" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi0xMS0xLTEtMA_90eba445-34d8-4550-ba36-166e506a5ece">1,188,859</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Issuance of common stock under stock plans</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy0xLTEtMS0w_fe85bb00-ff8c-4aab-8b97-61111645097f">522</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy0zLTEtMS0w_1006ad01-12f7-414a-9a2c-b844926a94c2">1</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id1958ec4cb8f46429d60ecb4713343a3_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy01LTEtMS0w_cf32117d-31f2-4a6d-8225-c4671b4a7e22">12,070</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy0xMS0xLTEtMA_0b198933-c805-406c-9238-5f450a39f793">12,071</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Repurchase of common stock</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="shares" contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodShares" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC0xLTEtMS0w_9eba6b10-0925-44f0-8029-b2dda442b378">1,398</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC0zLTEtMS0w_710f56d2-a249-4aa4-9914-045b27781933">3</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC03LTEtMS0w_bc3135b5-5673-4a3c-b606-10d6b7cfb5ac">61,687</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC0xMS0xLTEtMA_e430bbf4-385e-4da3-9a1c-aa03bfa3302c">61,690</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Stock-based compensation expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id1958ec4cb8f46429d60ecb4713343a3_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNS01LTEtMS0w_30e126be-8c08-4748-8dd4-802f16471928">10,967</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNS0xMS0xLTEtMA_e96c4524-a721-4ca0-a9cf-8502d94cabe0">10,967</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Payment of dividends</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNi03LTEtMS0w_a994146b-e62c-4df3-92c7-7e1d8eccb222">8,582</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNi0xMS0xLTEtMA_9a9dd7d8-d0e7-474e-8f87-2aaa954f7add">8,582</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOC03LTEtMS0w_447428f1-ebd3-4f65-8289-120dd8654c2a">48,749</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOC0xMS0xLTEtMA_d7e577bb-0a54-4707-8842-7881c632f05f">48,749</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net unrealized gain (loss) on available-for-sale investments, net of tax of $239</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOS05LTEtMS0w_6da9f603-8c12-4b09-a247-9d2b606f6b2b">2,311</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOS0xMS0xLTEtMA_53a46523-c92e-4435-86ab-54e5239ab66f">2,311</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTAtOS0xLTEtMA_4fe24d23-63e9-44b8-a71d-65cdd80f98c3">382</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTAtMTEtMS0xLTA_85d68ed9-e78a-4c14-b1b4-0e3cbdcebafb">382</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency translation adjustment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTEtOS0xLTEtMA_cbf1bf9d-fd7f-4586-9ad4-ea76843b1891">663</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTEtMTEtMS0xLTA_d0087262-4a73-4242-a019-07778e6b8b15">663</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 30, 2019 (unaudited)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItMS0xLTEtMA_e5811a8f-b7d3-40c2-850e-55385ee5e5ef">170,661</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItMy0xLTEtMA_829a7453-a3e3-465a-8f3e-cfbf75cfb1ed">341</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic051ab77728e40908d6b485f1b354a8f_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItNS0xLTEtMA_a7314ef8-3e96-4915-b3dd-dd13ce463429">578,871</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i804ab526c89e443f8b3dcaf6af2de12e_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItNy0xLTEtMA_254ca0c4-855d-4e19-8a83-380755dc88bd">649,234</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i0445be96163342e5b1962b12962e92f4_I20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItOS0xLTEtMA_be085c71-4b04-407d-80b0-a2a15c1fb6cc">36,806</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItMTEtMS0xLTA_e5ec14ce-db7a-4e00-9f31-b91ca2aced42">1,191,640</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:center;margin-top:12pt;"><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="background-color:rgb(255,255,255, 0.0);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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;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><br/></span></div></div><div style="text-align:center;"><span><br/></span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</span></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(In thousands)</span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"></td><td style="width:28.044%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:6.983%;"></td><td style="width:1.0%;"></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:7.278%;"></td><td style="width:1.0%;"></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:7.867%;"></td><td style="width:1.0%;"></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:7.572%;"></td><td style="width:1.0%;"></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:12.580%;"></td><td style="width:1.0%;"></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:11.996%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Common Stock</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Additional<br/>Paid-in Capital</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Retained Earnings</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Other<br/>Comprehensive<br/>Loss</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total<br/>Shareholders&#8217;<br/>Equity</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Par&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i5df802dd93044ae49cb3336212205376_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi0xLTEtMS01NTQx_794f1117-9733-4845-bfc3-11f7ca95f2d8">172,440</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5df802dd93044ae49cb3336212205376_I20191231" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi0zLTEtMS01NTQx_f8367cbb-96f5-4833-96ed-d3ec99ec3c3e">345</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibe498205c18947f0bef7f72145695991_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi01LTEtMS01NTQx_e5a595e6-49a7-4c70-ac55-b707beb29a84">639,372</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia04ef572494a469e85e6da42fb4c2e6f_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi03LTEtMS01NTQx_0734480e-819f-41d4-b961-bde3492a371f">753,268</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i496c881206324a98a7057d07953934fb_I20191231" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi05LTEtMS01NTQx_0c8d89c1-bf0b-4dc2-8073-10dd1c1f69a5">37,275</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi0xMS0xLTEtNTU0MQ_bcefc33a-6189-4d2a-b739-b5ff7ea50742">1,355,710</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Issuance of common stock under stock plans</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy0xLTEtMS01NTQx_427a06fc-419a-44e6-914f-c2eac7120324">1,822</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy0zLTEtMS01NTQx_c6f4bf84-99d4-4f10-ad78-a4e182f3a59a">3</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic6f5006b10c5487f9c1175c4680b9707_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy01LTEtMS01NTQx_08b03cec-04a4-47e3-948e-491de722236d">48,232</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy0xMS0xLTEtNTU0MQ_855e29a9-54b3-4b39-990f-37a421b203ef">48,235</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Repurchase of common stock</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="shares" contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodShares" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC0xLTEtMS01NTQx_df9ef8a5-fb02-4ea7-b347-a3ce140870b4">1,215</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC0zLTEtMS01NTQx_7614275a-bf9b-403e-836c-1666a213ad6c">2</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i1c643112133f451baa01d848b56a13f0_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC03LTEtMS01NTQx_a49411c3-1f93-48a8-98be-d58edd4819f2">51,034</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC0xMS0xLTEtNTU0MQ_345a17d5-8729-4a05-9c0f-f5775cd66447">51,036</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Stock-based compensation expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic6f5006b10c5487f9c1175c4680b9707_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNS01LTEtMS01NTQx_aeb395ff-3b23-46a7-ab41-6002b096d4f2">22,808</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNS0xMS0xLTEtNTU0MQ_5a1620f9-e7db-4028-b86b-adfb89014803">22,808</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Payment of dividends</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i1c643112133f451baa01d848b56a13f0_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNi03LTEtMS01NTQx_8f4ed0af-759f-4317-ad20-64c479088be4">18,972</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNi0xMS0xLTEtNTU0MQ_d347ea89-6d79-490b-8ce4-c48310e55ba2">18,972</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1c643112133f451baa01d848b56a13f0_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfOC03LTEtMS01NTQx_83c97fd3-3721-4395-b5e3-2aa0a44ed6dd">19,335</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfOC0xMS0xLTEtNTU0MQ_af236695-4e94-4bba-831e-225664cf5185">19,335</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($1,788)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTEtOS0xLTEtNTU0MQ_1cb6b6c1-7afd-4d0e-a0e4-b0fbf097af7e">8,590</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTEtMTEtMS0xLTU1NDE_bf785c67-de77-49ab-a5c0-399c18651160">8,590</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of credit loss on investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTItOS0xLTEtNTU0MQ_360d5441-9e13-4481-b6ed-968f61140e5d">75</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTItMTEtMS0xLTU1NDE_443f3531-989b-4726-9e86-690cd404dc0c">75</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTMtOS0xLTEtNTU0MQ_2f211fbf-ad66-4554-96ae-0ab4953e0275">2,805</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTMtMTEtMS0xLTU1NDE_4fd15e7b-fbd8-48a6-bac3-5cdfdc2d0086">2,805</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency translation adjustment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTQtOS0xLTEtNTU0MQ_a533a570-c7cc-494b-95cb-d175b9df39a5">5,462</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTQtMTEtMS0xLTU1NDE_aa61a113-a077-4cfd-891e-4d50c47038f4">5,462</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020 (unaudited)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtMS0xLTEtNTU0MQ_96b577ba-269b-4963-b576-c91db2aa7876">173,047</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtMy0xLTEtNTU0MQ_c785b579-dbf1-4eb6-a808-856893d10970">346</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icb2e5217f55f406289b5cabb8359f389_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtNS0xLTEtNTU0MQ_fdcb703f-f2f4-409e-88a9-1a05138a1d4b">710,412</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic26f54781e5c4a8886eddc97b739c7f5_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtNy0xLTEtNTU0MQ_5d62860d-7857-447d-bad5-32891eb9725e">702,597</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i96d78535cce74acdbf73cf711e8d9464_I20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtOS0xLTEtNTU0MQ_e47bd206-ce65-4709-8082-15391bf7743a">36,877</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtMTEtMS0xLTU1NDE_b370f151-75f5-40d2-ac12-ac25a1b211b5">1,376,478</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:center;"><span><br/></span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"></td><td style="width:28.044%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:6.983%;"></td><td style="width:1.0%;"></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:7.278%;"></td><td style="width:1.0%;"></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:7.867%;"></td><td style="width:1.0%;"></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:7.572%;"></td><td style="width:1.0%;"></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:12.580%;"></td><td style="width:1.0%;"></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:11.996%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Common Stock</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Additional<br/>Paid-in Capital</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Retained Earnings</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Other<br/>Comprehensive<br/>Loss</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total<br/>Shareholders&#8217;<br/>Equity</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Par&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2018</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="ib8d6fc9c105641509da02b1704c72686_I20181231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi0xLTEtMS01NTQz_285596d3-bcea-49d5-912d-c8f3b655a33d">170,820</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ib8d6fc9c105641509da02b1704c72686_I20181231" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi0zLTEtMS01NTQz_ae7cee9c-804d-4499-b0fe-e704a822df58">342</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2c1b1a2a383241c8bb09a8280fc8a19d_I20181231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi01LTEtMS01NTQz_967e404e-75d6-479d-b547-dc62517a1060">529,208</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ib67475f7ae274115ba9d67504c6d47b1_I20181231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi03LTEtMS01NTQz_1764b2e9-3a32-4539-84cd-56e9f6ad806a">646,214</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ic300f4175ae543be884f97db607cbd6b_I20181231" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi05LTEtMS01NTQz_5f22495b-838f-4826-8522-7f12ea1347dd">40,501</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i0b0706b68e684f83aa546dd2533ce44b_I20181231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi0xMS0xLTEtNTU0Mw_8b83b245-7e2d-4625-95d9-497474225e61">1,135,263</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Issuance of common stock under stock plans</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy0xLTEtMS01NTQz_d675d8c4-f679-4ef4-a06a-aaef36d96327">1,239</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy0zLTEtMS01NTQz_5d71d427-bb6d-43d9-ab33-07a6377bf9e4">2</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4dd591ad2c334f38a05a749f22572a52_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy01LTEtMS01NTQz_6cf0c336-c181-4354-8bd4-622f25a2f2ed">26,415</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy0xMS0xLTEtNTU0Mw_4ddb0fb3-3e88-4aba-bd40-ef1171b2f587">26,417</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Repurchase of common stock</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="shares" contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodShares" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC0xLTEtMS03NjU4_4764ad83-d014-4469-b64f-61c90a474b88">1,398</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC0zLTEtMS03NjU4_3618a008-426f-4900-bbd6-bb2a0e84aad6">3</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC03LTEtMS03NjU4_91645096-35a4-4f27-9ee3-df099a6b26c9">61,687</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC0xMS0xLTEtNzY1OA_c4dc3241-9d4a-4f5c-bbd9-8291d1ba16e0">61,690</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Stock-based compensation expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4dd591ad2c334f38a05a749f22572a52_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNS01LTEtMS01NTQz_f6d759a7-53ec-4108-8ba9-5f56fbe6c3e1">23,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNS0xMS0xLTEtNTU0Mw_955daa14-d358-4ef1-ab5b-ce3d0c8e20db">23,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Payment of dividends</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNi03LTEtMS01NTQz_55a4c4d8-c88d-451d-95c2-beecacd2c15a">17,146</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DividendsCash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNi0xMS0xLTEtNTU0Mw_38d457aa-bc9b-447c-8d48-bd2cd906d130">17,146</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net income</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfOC03LTEtMS01NTQz_203ed3f5-740c-4a4e-a949-1386a854cc80">81,853</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfOC0xMS0xLTEtNTU0Mw_e70693de-47dc-4070-b2e2-57cd71156929">81,853</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net unrealized gain (loss) on available-for-sale investments, net of tax of $507</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTEtOS0xLTEtNTU0Mw_8302dde7-d61f-4b1d-841e-7ac884ebe9ad">4,562</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTEtMTEtMS0xLTU1NDM_3f576655-3f43-4aaf-83c7-58bd887f6241">4,562</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTMtOS0xLTEtNTU0Mw_d2d67ce6-771f-4b24-b783-e8e5df36df31">422</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTMtMTEtMS0xLTU1NDM_db542c42-c40e-406c-9239-6f80bc6e66b7">422</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency translation adjustment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTQtOS0xLTEtNTU0Mw_719538a1-595f-4652-8ca2-f3aaf6f004db">445</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTQtMTEtMS0xLTU1NDM_58dd8416-59f1-4e46-9b08-cca890ad0188">445</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 30, 2019 (unaudited)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtMS0xLTEtNTU0Mw_a4924529-5bda-4511-a422-895e9f871af6">170,661</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtMy0xLTEtNTU0Mw_25a001c9-f1e4-45bd-b656-a5f8f8136ddb">341</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic051ab77728e40908d6b485f1b354a8f_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtNS0xLTEtNTU0Mw_ddc7714a-3b26-4401-9179-e941a194b802">578,871</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i804ab526c89e443f8b3dcaf6af2de12e_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtNy0xLTEtNTU0Mw_8ef588d0-6608-4bd5-907f-e052fcecb692">649,234</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i0445be96163342e5b1962b12962e92f4_I20190630" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtOS0xLTEtNTU0Mw_bef64a02-29e4-4fb4-847e-22b47ca02f28">36,806</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtMTEtMS0xLTU1NDM_8a118e0d-5c37-40d7-9d90-0d2e4d2dcfcc">1,191,640</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></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="background-color:rgb(255,255,255, 0.0);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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">8</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_37"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED)</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:700;line-height:120%;"> </span></div><div id="iec310d5d14154791acae03eee3bb73e6_40"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 1: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80MC9mcmFnOjA0ZjFkOThlZDFjZjRiYmNhNjU2Yzg4NDg3M2Y3NDRhL3RleHRyZWdpb246MDRmMWQ5OGVkMWNmNGJiY2E2NTZjODg0ODczZjc0NGFfNjYzNg_5d2fd2c1-cf9b-457f-a61b-43eea29049f8" continuedAt="i10f1b87e23fe42c4920a197842824ed6" escape="true">Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:continuation id="i10f1b87e23fe42c4920a197842824ed6" continuedAt="i91c19579536c47eab4a52f041a8549dd"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As permitted by the rules of the Securities and Exchange Commission applicable to Quarterly Reports on Form                      10-Q, these notes are condensed and do not contain all disclosures required by generally accepted accounting principles (GAAP).  As a result of the adoption of ASU 2016-13 "Measurement of Credit Losses on Financial Instruments," Cognex Corporation (the "Company") has provided new disclosures related to credit losses in this Quarterly Report on Form 10-Q.  Reference should be made to the consolidated financial statements and related notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended December&#160;31, 2019 for a full description of other significant accounting policies.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">In the opinion of the management of the Company, the accompanying consolidated unaudited financial statements contain all adjustments, consisting of normal, recurring adjustments, excess and obsolete inventory charges (Note 5), intangible asset impairment charges (Note 8), restructuring charges (Note 16), and financial statement reclassifications necessary to present fairly the Company&#8217;s financial position as of June&#160;28, 2020, and the results of its operations for the three-month and six-month periods ended June&#160;28, 2020 and June&#160;30, 2019, and changes in shareholders&#8217; equity, comprehensive income, and cash flows for the periods presented.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The results disclosed in the Consolidated Statements of Operations for the three-month and six-month periods ended June&#160;28, 2020 are not necessarily indicative of the results to be expected for the full year.</span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80MC9mcmFnOjA0ZjFkOThlZDFjZjRiYmNhNjU2Yzg4NDg3M2Y3NDRhL3RleHRyZWdpb246MDRmMWQ5OGVkMWNmNGJiY2E2NTZjODg0ODczZjc0NGFfNjYyOQ_2dc135f1-aafe-4165-8427-12e8e136d939" continuedAt="icb802e563ecc46ddbad6973ced438b0f" escape="true"><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Money market instruments, as well as certificates of deposit and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and 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.  It is the Company&#8217;s policy to invest in debt securities with effective maturities that do not exceed ten years.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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 and credit losses, recorded in shareholders&#8217; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#8217;s limited partnership interest is accounted for using the cost method because the Company&#8217;s investment is less than 5% of the partnership and the Company has no influence over the partnership&#8217;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether a credit loss or other type of impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the decline has resulted from a credit loss or other factors.  In assessing whether a credit loss exists, the Company compares the present value of the cash flows expected to be collected from the security with the amortized cost basis of the security.  If the present value of the cash flows expected to be collected is less than the amortized cost basis of the security, then a credit loss exists and an allowance for credit losses is recorded.  The allowance for credit losses is limited by the amount that the fair value is less than the amortized cost basis of the security.  Credit losses on impaired securities continue to be measured in subsequent periods, using the present value of expected future cash flows, and changes in the expected credit losses are recorded in current operations.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statement of Operations.  When developing an estimate of the expected credit losses, the Company considers all available information relevant to assessing the collectability of cash flows. This information includes internal and external factors, historical and current events, reasonable and supportable forecasts including management's expectations of future economic conditions, the type of security, the credit rating of the security, the size of the loss position, as well as other relevant information. </span></div></ix:nonNumeric></ix:continuation><div style="text-align:justify;margin-top:9pt;"><span><br/></span></div><div style="text-align:justify;margin-top:9pt;"><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;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><br/></span></div></div><ix:continuation id="i91c19579536c47eab4a52f041a8549dd"><ix:continuation id="icb802e563ecc46ddbad6973ced438b0f"><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">An impairment is recognized as a write-down if (i)&#160;the Company has the intent to sell the security or (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis.  If impairment is considered upon condition (i)&#160;or (ii)&#160;described above, the debt security's amortized cost basis is written-down to its fair value and the impairment is recognized in current operations. Subsequent increases in the fair value of the debt securities after the write-down are included in shareholders' equity as other comprehensive income. The differences between the new amortized cost basis and the cash flows expected to be collected are accreted as interest income. </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Unrealized losses, that have not been recorded through an allowance for credit losses or write-down of the debt security, are recorded in shareholders' equity as other comprehensive loss, net of the applicable taxes.</span></div></ix:continuation><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ReceivablesPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80MC9mcmFnOjA0ZjFkOThlZDFjZjRiYmNhNjU2Yzg4NDg3M2Y3NDRhL3RleHRyZWdpb246MDRmMWQ5OGVkMWNmNGJiY2E2NTZjODg0ODczZjc0NGFfNjY0MQ_5576df2b-e20b-46d1-b919-bd436e21e3ed" escape="true"><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon 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 potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, general economic and industry conditions, and reasonable forecasts about the future, 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 reversal of the bad debt expense.  Credit losses are included in "Selling, general, and administrative expenses" on the Consolidated Statement of Operations.</span></div></ix:nonNumeric></ix:continuation><div id="iec310d5d14154791acae03eee3bb73e6_43"></div><div style="text-align:justify;margin-top:9pt;"><span><br/></span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 2: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80My9mcmFnOjNkYzdmZjA3MTY0NDQwNDM4ODdiNjk5NjEzMGY4MGY2L3RleHRyZWdpb246M2RjN2ZmMDcxNjQ0NDA0Mzg4N2I2OTk2MTMwZjgwZjZfNDMwMg_389938b0-6441-4898-b588-955b92319332" continuedAt="i6b11f095992d42a1894d82cfd08f1277" escape="true"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80My9mcmFnOjNkYzdmZjA3MTY0NDQwNDM4ODdiNjk5NjEzMGY4MGY2L3RleHRyZWdpb246M2RjN2ZmMDcxNjQ0NDA0Mzg4N2I2OTk2MTMwZjgwZjZfNDMxMA_a803799f-4bd6-48c6-9098-0ab2ec21e0ed" continuedAt="ia9d5c0f9e305408bbb0169f62524f0cc" escape="true">New Pronouncements</ix:nonNumeric></ix:nonNumeric></span></div><ix:continuation id="i6b11f095992d42a1894d82cfd08f1277" continuedAt="i02901ee9efce47f8acf03e9b6ab80d6f"><ix:continuation id="ia9d5c0f9e305408bbb0169f62524f0cc" continuedAt="i79a717c2321a4f41af487952bdd832d0"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.</span></div></ix:continuation></ix:continuation><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;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><br/></span></div></div><ix:continuation id="i02901ee9efce47f8acf03e9b6ab80d6f"><ix:continuation id="i79a717c2321a4f41af487952bdd832d0"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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)"</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform.  The amendments in this ASU 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, 2022, except for hedging relationships existing as of December 31, 2022, that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship.  The amendments in this ASU are effective for all entities as of March 12, 2020 through December 31, 2022.  Management does not expect ASU 2020-04 to have a material impact on the Company's consolidated financial statements and disclosures.</span></div></ix:continuation></ix:continuation><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">11</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_46"></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 3: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:FairValueDisclosuresTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzc5OA_960d1d1d-fdb6-4c03-91b0-2e0bd8c0c28b" continuedAt="i65f3dbf86d7b40ecbb3661cadeb167c2" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:continuation id="i65f3dbf86d7b40ecbb3661cadeb167c2" continuedAt="ie62f96f4377e402fa2297fa7fb87c981"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzgwMQ_4a888cf9-ea05-402f-a1cc-e44548a4344e" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 required to be measured at fair value on a recurring basis as of June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:49.098%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:13.812%;"></td><td style="width:1.0%;"></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.812%;"></td><td style="width:1.0%;"></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.814%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level 1)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Significant Other<br/>Observable<br/>Inputs (Level 2)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unobservable Inputs (Level 3)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Assets:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Money market instruments</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i9dc01e71d6314fe6884aa8e36895f63e_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:MoneyMarketFundsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMi0xLTEtMS0w_4dcaec5b-237c-4a1e-894b-22bf9e603835">50,222</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:MoneyMarketFundsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMi0zLTEtMS0w_81340683-7f10-4f7e-af9d-14a8bd71354a">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i751ce105a23043c9b8c7160cf868755e_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMy0zLTEtMS0w_b5959f12-5010-4ea3-aa9f-90550fdb05c3">236,660</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i451bed49b98543ba8feeb4d38db529cb_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfNC0zLTEtMS0w_b7455b7a-8bf1-497a-b062-c70747289ec3">230,692</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i09ab9c2f3e284c039d5f1c7dabec64ea_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfNS0zLTEtMS0w_a1e6f595-4968-4bcf-8c31-c94f933ac5df">91,610</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i959c1d93f1da448ba0d6ed03b2b352fa_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfNy0zLTEtMS0w_478c6b69-8503-4924-bb8c-e287d0b77ba7">27,517</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i7a338ee96e604cef913d651070774eeb_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfOC0zLTEtMS0yNDIw_d16870fa-a4ca-4db4-b5f8-5fc3e23544c7">22,054</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i9af2528fb3cb42b2856fd1a7841c74d4_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfOC0zLTEtMS0w_00387aa6-fd14-4baf-ac7e-c6faa8d5b69c">1,638</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right: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="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTMtMy0xLTEtMA_5dcf1c56-d1a0-440b-a440-bf39c8042ae1">46</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right: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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTYtMy0xLTEtMA_6b0ebbbc-bcb9-4bcd-8f51-f6db771bd091">458</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contingent consideration liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTctMy0xLTEtMA_8f281c7b-374d-4b55-ab9d-95fee036de0d">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5c79b7f8d5714c1ca485ccd80bc001f8_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTctNS0xLTEtMA_997e1c2c-1ade-4f8f-a164-bd0971530b9f">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded gross credit losses and gross credit recoveries on debt securities totaling $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="INF" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM0NA_63b1679e-a708-4c36-8fc8-54e4f8879254">0</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM1MA_b0a9d976-9ddf-4169-aa80-8c6e7633f9c2">85,000</ix:nonFraction>, respectively, for the three-month period ended June 28, 2020, and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM1OQ_dc8eb01e-e2a2-4aa4-970d-400ebb199d2d">160,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM3MQ_5beb542e-21af-4dff-b99f-440e6e5e15e3">85,000</ix:nonFraction>, respectively, for the six-month period ended June 28, 2020. <ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_7a5f65d2-d1a2-456f-a0de-3dc37dfbeb74"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_803ccb72-fc13-4ca5-9d50-fedec78c097f"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_a2a91fb3-94f0-4298-9b81-4bb1f09a857e"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_fa34111d-dacc-466d-a7a8-f2c2eaf7749a">No</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> credit losses or recoveries on debt securities were recorded for the three-month or six-month periods ended June 30, 2019.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statements of Operations.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company's contingent consideration liabilities are reported at fair value based upon probability-adjusted present values of the consideration expected to be paid using significant inputs that are not observable in the market, and are therefore classified as Level 3.  Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain revenue milestones.  The fair values of these contingent consideration liabilities were calculated using discount rates consistent with the level of risk of achievement, and are remeasured each reporting period.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The fair value of the contingent consideration liability related to the Company's acquisition of Chiaro Technologies, LLC was $<ix:nonFraction unitRef="usd" contextRef="i7bd2b9926b0141c490ca0c40a367e622_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMjc5Mw_63a60330-8044-4186-b9e9-478446ad6522">1,153,000</ix:nonFraction> as of December 31, 2019. During the three-month period ended June 28, 2020, the Company paid out $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzcyOA_f4f05c9f-7329-48a4-acda-d5913348f016">1,039,000</ix:nonFraction> based upon the revenue levels achieved, with the remaining $<ix:nonFraction unitRef="usd" contextRef="if9ce6259d29647d6855d301fa7b1e39f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesFairValueAdjustment" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1Mzc0MQ_bc04d727-7810-4e53-b492-3f1573c92c4c">114,000</ix:nonFraction> recorded as a fair value adjustment in "Other income (expense)" on the Consolidated Statements of Operations.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzc5Nw_623617a8-628f-4041-a535-e6e4cc48ce1b" escape="true">The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. was written down to <ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzA3Nw_734a2872-19ec-4666-811a-93d279230379">zero</ix:nonFraction> as of December 31, 2019 resulting from a lower level of revenue in the Americas' automotive industry, and the balance remains at <ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzIwOQ_b397d2c5-ff69-47e6-a698-d90fe91ff51d">zero</ix:nonFraction> as of June 28, 2020. The undiscounted potential outcomes related to future contingent consideration range from $<ix:nonFraction unitRef="usd" contextRef="i4b5cd194378142eeb95ce442c13207a2_I20200628" decimals="INF" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzMyNQ_cd17bec3-7220-4278-b214-f21bf2143e31">0</ix:nonFraction> to $<ix:nonFraction unitRef="usd" contextRef="i1f553599986a436c9b3288c83cc53a3d_I20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzMzMQ_55c6ac3b-1a04-44df-9f97-17a130fb6231">2,500,000</ix:nonFraction> based upon certain revenue levels over the next two years.</ix:nonNumeric> </span></div></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">12</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><ix:continuation id="ie62f96f4377e402fa2297fa7fb87c981"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">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. Our business has been adversely and materially impacted by deteriorating global economic conditions resulting from the COVID-19 pandemic. The significant decline in business levels triggered a review of long-lived assets for potential impairment as of May 26, 2020, which resulted in operating lease asset impairment charges of $<ix:nonFraction unitRef="usd" contextRef="i955df87e73494d7fa976f50036933ad1_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseImpairmentLoss" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1ODMzMQ_5fd79f9b-e449-4e13-ad00-a1e04ca7416f">2,534,000</ix:nonFraction> (refer to Notes 6 and 16) that are included in "Restructuring charges" on the Consolidated Statements of Operations, and intangible asset impairment charges of $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1ODM5MA_1492fc66-6e53-4643-872b-60be28f4f385">19,571,000</ix:nonFraction> (refer to Note 8). These fair value measurements are based upon the present values of future cash flows using significant inputs that are not observable in the market, and are therefore classified as Level 3.</span></div></ix:continuation><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div id="iec310d5d14154791acae03eee3bb73e6_52"></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 4: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTU_39452c79-15df-4730-a70e-28e0e5bdd1ab" continuedAt="i303fe87b00fa456d99b7703332133c96" escape="true">Cash, Cash Equivalents, and Investments</ix:nonNumeric></span></div><ix:continuation id="i303fe87b00fa456d99b7703332133c96" continuedAt="if805018056f04d809d1dda03a5146d12"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzg4NQ_9c194ba2-ec43-4eaa-99fb-7f503bbddcf7" escape="true"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:61.011%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:16.128%;"></td><td style="width:1.0%;"></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:16.131%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Cash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMS0xLTEtMS0w_0b1b235e-b5e5-42b2-b536-38d3ae12e9d4">235,799</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Cash" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMS0zLTEtMS0w_6d7c90bd-b57b-4137-9458-90d852232873">155,498</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Money market instruments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:MoneyMarketFundsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMy0xLTEtMS0w_73d888f0-9bf4-4be0-8e28-47a600fc24cf">50,222</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:MoneyMarketFundsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMy0zLTEtMS0w_bd0fa3d4-61c2-48b4-bb29-ba8da47b7629">15,933</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash and cash equivalents</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNC0xLTEtMS0w_692dd8b5-c376-4fb2-99b5-f221361197a6">286,021</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNC0zLTEtMS0w_5cbc3cff-4ca5-4dd7-a7c8-40b11cbf8372">171,431</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNS0xLTEtMS0w_4560ebd1-4cee-498a-804d-bab940ecd169">50,311</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i524fffe11789474187ead333ba0d7920_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNS0zLTEtMS0w_18bb7823-48ac-4e43-8665-5775dd8277e4">66,680</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNi0xLTEtMS0w_e669241d-a8e9-425c-a552-8834bccf9fa6">42,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibc7324cdfd4248d09bec160bf8f94fa6_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNi0zLTEtMS0w_39f869bd-0097-4380-81d0-dc231b68b870">65,624</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOC0xLTEtMS0w_63c3970d-1b35-4b28-b385-2fb440912404">34,018</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i27a24cdf51794e24ae3a5d31a6666690_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOC0zLTEtMS0w_f1a0b7d1-8c31-43b1-a8c1-8c0363f9fe2a">92,914</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if30d5aee2c44425da343f5d66f39d18f_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0xLTEtMS0yNDMw_2a357c84-add9-4e49-a759-0cd33469c4c5">14,869</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i85ff251260ad4df3bf4fef4a3c9db1b4_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0zLTEtMS0yNDMw_ef721a20-8912-4c88-bc8c-7452c39f11fc">6,294</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0xLTEtMS0w_52178030-7015-4e48-a978-c0a05ef92469">1,638</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i7428b2868c414661bdbe5132b920faf0_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0zLTEtMS0w_2a56720d-a3a5-459e-a7d0-a5e89ecb852a">4,630</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Certificate of deposit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="idfa3a82b761842d3a82f32a1be036e1e_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTAtMS0xLTEtMA_67a9114e-67ea-4047-8960-21eb7d59d7e2">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia00037290a1f430e8012506014c58c72_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTAtMy0xLTEtMA_e1527f36-6927-43d8-9b7e-40fd54372a3e">4,328</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTQtMS0xLTEtMA_7e2fbde6-c145-4762-b078-6aa67b5c6dc6">143,084</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTQtMy0xLTEtMA_c74147cb-3c2c-4254-9525-4d9a45ebd8c5">240,470</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTUtMS0xLTEtMA_9d4d87d0-be82-4781-8678-abaab70bfe14">196,674</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i27a24cdf51794e24ae3a5d31a6666690_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTUtMy0xLTEtMA_0c0758cd-5fe0-4d5b-af19-04cc27d16095">216,334</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTYtMS0xLTEtMA_829e43d1-bcf4-42a5-be6c-0cb42fab4699">194,412</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibc7324cdfd4248d09bec160bf8f94fa6_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTYtMy0xLTEtMA_57c4262d-63e2-4f41-a9d6-7dc0f0c96b6b">146,474</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTctMS0xLTEtMA_dae2290f-bf20-460b-8d77-b298b6e9f380">41,299</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i524fffe11789474187ead333ba0d7920_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTctMy0xLTEtMA_6089b4e2-7313-4c04-a2f4-f7f6620ae64e">46,403</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMS0xLTEtMjQzNw_37427037-bdd7-4937-90d3-bf195e268956">22,054</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4c49e8a5b27241c8a53e6dfe04b134b4_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMy0xLTEtMjQzNw_1bb37a74-9092-4a1d-b64c-6d00a650a81d">5,914</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMS0xLTEtMA_6ae42777-85c0-408f-a8df-67e58f4b3064">12,648</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ib004241936c04bb9ae9de0b6d0b240c5_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMy0xLTEtMA_33f718e8-7cfd-406c-8098-fa5547fa3db7">16,005</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjAtMS0xLTEtMA_0c76165c-4dd7-4f65-a185-b500293d24b3">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i7428b2868c414661bdbe5132b920faf0_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjAtMy0xLTEtMA_34780cbf-201b-45b0-bc66-13b65fabaa84">2,322</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjMtMS0xLTEtMA_a9bc6dc6-d749-493e-88dc-4bcf46eaf884">467,087</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LongTermInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjMtMy0xLTEtMA_a5faf35f-6d36-415d-ba1b-5c2939d0c283">433,452</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjQtMS0xLTEtMA_decba90f-b6dd-4fd0-b614-56e6e28989f7">896,192</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjQtMy0xLTEtMA_63847b56-9aaf-4a89-9b07-ecaaad1939eb">845,353</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; corporate bonds consist of debt securities issued by both domestic and foreign companies; treasury bills consist of debt securities issued by the U.S. government; sovereign bonds consist of direct debt issued by foreign governments; municipal bonds consist of debt securities issued by state and local government entities; certificates of deposit are time deposits held by financial institutions with a fixed interest rate; and agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing.  All securities are denominated in U.S. Dollars, with the exception of the certificate of deposit held as of December 31, 2019 that was denominated in Korean Won.</span></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Accrued interest receivable is recorded in "Prepaid expenses and other current assets" on the Consolidated Balance Sheet and amounted to $<ix:nonFraction unitRef="usd" contextRef="ia44d8601ad7741d991c09e99ce636799_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestReceivable" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMzkxMg_46c05657-a5dc-43de-8f79-0ae08962c778">1,958,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="ifc1802cbd48d47b89b0cfa0214579bbf_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestReceivable" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMzkyMA_8dc1896a-4f45-4d21-9cae-baf717bc1b98">2,874,000</ix:nonFraction> as of June 28, 2020 and December 31, 2019, respectively.</span></div></ix:continuation><div style="text-align:justify;"><span><br/></span></div><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">13</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><ix:continuation id="if805018056f04d809d1dda03a5146d12" continuedAt="i5964d408fead40bda52784fc89c41722"><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">On January 1, 2020, the Company adopted Accounting Standards Update (ASU) 2016-13,  &#8220;Measurement of Credit Losses on Financial Instruments,&#8221;  using the modified-retrospective approach, which requires the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to retained earnings as of the beginning of the period in which the guidance is effective.  The Company did not record an adjustment to retained earnings, as there were no debt securities with credit losses as of the adoption date. </span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzg5OQ_c39f8e2c-7f2f-4e13-be8f-e354108e3ebe" escape="true"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:6pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:41.841%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:11.636%;"></td><td style="width:1.0%;"></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:11.343%;"></td><td style="width:1.0%;"></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:11.489%;"></td><td style="width:1.0%;"></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:11.492%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amortized<br/>Cost</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi0xLTEtMS0w_9c58049b-1bec-41b5-87eb-43271db5ad5b">49,899</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi0zLTEtMS0w_4cbc336b-5f7a-442b-858d-55a759a066f6">412</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi01LTEtMS0w_d973b6e2-1c62-4cc5-a2f1-8cb0c7997fcb">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi03LTEtMS0w_64878fac-49eb-4e7f-acad-9bf792374e0a">50,311</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy0xLTEtMS0w_e7fbfb74-3b19-4655-a1cb-5b2b0b242b74">42,065</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy0zLTEtMS0w_438ea161-4ba8-41ec-9fc5-68b8eafb6f18">221</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy01LTEtMS0w_bddc1eb7-4cf5-44c0-a4f7-57099aa95ff3">38</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy03LTEtMS0w_ab12d37f-78f6-4897-8279-592ab185e471">42,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy0xLTEtMS0w_dff739c6-c641-431d-9d53-bcc01f02d1ab">33,480</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy0zLTEtMS0w_f31e53bb-b8e9-4319-b4ad-15365254e37b">538</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy01LTEtMS0w_0b5aad7c-9db3-4864-984f-945fc12e3546">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy03LTEtMS0w_b9371617-d539-4922-af86-3920e34d2468">34,018</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i30de0db3427742059c4e647dd6f45516_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0xLTEtMS0yNDY3_5d7f67a4-91d2-45c9-8cd9-dc2c236dd067">14,787</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i30de0db3427742059c4e647dd6f45516_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0zLTEtMS0yNDY3_fa1144c2-b018-4700-add3-b54a1f292b16">82</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i30de0db3427742059c4e647dd6f45516_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC01LTEtMS0yNDY3_029498df-131e-44df-9266-fafed1525d91">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i30de0db3427742059c4e647dd6f45516_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC03LTEtMS0yNDY3_eb3aa929-25fc-4f3a-945c-6bbc40c3dbb9">14,869</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0xLTEtMS0w_25ccbb4e-6999-408b-9030-5d726bd03456">1,643</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0zLTEtMS0w_156ab8b3-7c91-4a25-9a82-19904a4e1213">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC01LTEtMS0w_783b8d1f-4a2b-43cc-8313-5512a8600260">5</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC03LTEtMS0w_07f11c0e-f820-4857-a245-833c6beacb1b">1,638</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic589f29e9d0d424699fac022a6168312_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItMS0xLTEtMA_f9d4572d-2ec5-41a4-972d-69917c47e558">194,330</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic589f29e9d0d424699fac022a6168312_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItMy0xLTEtMA_d318138b-8ccb-4515-aa99-fc5df972fdc0">2,345</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ic589f29e9d0d424699fac022a6168312_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItNS0xLTEtMA_442ecff2-1265-433f-b20a-1e6d7ddc39d3">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic589f29e9d0d424699fac022a6168312_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItNy0xLTEtMA_b26d8203-fb68-4ed0-8546-93dfb7610650">196,674</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtMS0xLTEtMA_570770cf-c1c4-47e6-9902-4b3f3df59585">192,233</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtMy0xLTEtMA_26ed0dc8-842c-4da2-8339-207f47ddc981">2,513</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtNS0xLTEtMA_6024d7fb-a74b-4d3b-94b4-164461ab6758">334</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtNy0xLTEtMA_5df223d1-9f15-4c79-b457-4d5853898707">194,412</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtMS0xLTEtMA_d359069b-06c1-415a-9553-7cb85da78f64">40,817</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtMy0xLTEtMA_d1d09c27-6ac0-41ff-bcaf-daa3c9bf4d11">484</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtNS0xLTEtMA_99c22cd3-c14f-40fb-b9a2-50bfe00b653c">2</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtNy0xLTEtMA_3741faf7-0a11-4fec-a1f4-e0cf87ea50e4">41,299</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMS0xLTEtMjQ3NA_4abb7784-9c01-4d4e-bd36-100b0aeb1b86">22,035</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMy0xLTEtMjQ3NA_e2b2856c-5138-427b-a919-868d82360657">37</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNS0xLTEtMjQ3NA_100fd53c-9a87-4ce1-98db-45b209b9147d">18</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNy0xLTEtMjQ3NA_5c148d07-5ec1-4d63-b701-c81a28ad0f85">22,054</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMS0xLTEtMA_0a8b6333-ddef-4d35-9004-70fc0faf358d">12,533</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMy0xLTEtMA_b5e4a14d-1661-4327-89ff-c93512dfec76">115</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNS0xLTEtMA_762a9f77-a9a0-498e-9ff9-c55bfea48c71">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNy0xLTEtMA_0b47496c-b380-42fe-bf32-6d82b14abda6">12,648</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtMS0xLTEtMA_d30a3d92-b4db-4279-9bdc-2cfd159e4122">603,822</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtMy0xLTEtMA_0a94bac0-a837-470b-a349-c42c945e03c0">6,747</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtNS0xLTEtMA_3d3ffb05-c4a6-4919-874c-bd5590bf4771">398</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtNy0xLTEtMA_b4a6605f-3317-4211-a97e-d57d6900a4d0">610,171</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzg4NA_2e6ba39a-3bc7-43ea-be8c-bca198782f99" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:6pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"></td><td style="width:29.811%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:8.751%;"></td><td style="width:1.0%;"></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.751%;"></td><td style="width:1.0%;"></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.751%;"></td><td style="width:1.0%;"></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.751%;"></td><td style="width:1.0%;"></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.751%;"></td><td style="width:1.0%;"></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.754%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="21" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized Loss Position For:</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Less than 12 Months</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12 Months or Greater</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy0xLTEtMS0w_c10b3406-86a4-4334-86e0-4782a8d4e106">49,525</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy0zLTEtMS0w_e63dfd7e-f32a-4bde-a9b2-d05b0f8037e4">363</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy01LTEtMS0w_709376d6-f235-4723-adf5-4aa107c15062">1,181</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy03LTEtMS0w_92f4da60-a3d5-4354-bf2c-65b7c6141023">9</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy05LTEtMS0w_6b2fcda8-f1fb-4690-9f6a-ab91a79f86eb">50,706</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy0xMS0xLTEtMA_b18ff46f-444e-4a67-89b4-02da3fa2fdab">372</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xLTEtMS03Njc4_738e2229-70ea-4088-a0f4-da8231f8d0e0">12,962</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0zLTEtMS03Njc4_4ff0231f-f369-4baa-aaf0-5c234b545d8d">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC01LTEtMS03Njc4_6855d08f-f385-485b-a469-83fa1357a21e">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC03LTEtMS03Njc4_3059151d-2951-4c14-b30c-5f8ad1266ce6">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC05LTEtMS03Njc4_44c2d24b-92f7-4c2d-8fde-d5e6683d7336">12,962</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xMS0xLTEtNzY3OA_3ea995bd-d873-4024-825a-23809a22c8b1">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xLTEtMS0w_0666cced-5219-4f27-ac14-6aa6c900df11">5,749</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0zLTEtMS0w_75980c2e-0c9d-4b6a-9982-d63d53f93163">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC01LTEtMS0w_ae8c219e-3a48-499b-a7d7-5005c91a5792">260</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC03LTEtMS0w_e89f872c-d48b-402b-bf40-ad1cc47dea22">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC05LTEtMS0w_cb111751-ea0a-4f6c-80fe-c049cf30c018">6,009</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xMS0xLTEtMA_d0f4441f-9adf-471f-ac71-df33fbe8a0f2">2</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy0xLTEtMS0w_2d93cd50-0ad0-462c-9e73-4a36e10a550e">3,128</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy0zLTEtMS0w_4488d3e8-8aa5-48e7-a773-799df917b7f0">2</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy01LTEtMS0w_99c2cad8-ca6d-401e-adac-f2f9ee1afaea">2,784</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy03LTEtMS0w_5b9f52ec-1e34-43e8-a4d5-db052bd04cf5">16</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy05LTEtMS0w_f4df7b09-deaf-4bbf-a2fc-5f4dcc6d56a8">5,912</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy0xMS0xLTEtMA_9628049c-d330-4839-bf65-046adcfd302d">18</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC0xLTEtMS0w_d99a2339-80d5-416a-a4dd-3e57d8bd0d38">1,293</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC0zLTEtMS0w_3934ed8d-8f96-4d7c-937d-3b4b26daff2a">5</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC01LTEtMS0w_4bef496a-0368-411c-a8e1-e6140cf5a43b">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC03LTEtMS0w_dbff0349-e9a7-4a0f-877c-2bec19902e7a">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC05LTEtMS0w_8d3f54e9-8faa-4d54-8e5e-ebb5b402d8c5">1,293</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC0xMS0xLTEtMA_9c4f962d-cbfd-4ae8-a7cf-816b3b7ad777">5</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtMS0xLTEtMA_5a2f6f97-9a7c-423c-b219-0565621cf1ce">72,657</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtMy0xLTEtMA_74cf302e-e132-412d-b033-b3227be46277">372</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtNS0xLTEtMA_ca259652-b7a6-4581-9390-bcb45b137b01">4,225</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtNy0xLTEtMA_e0c0e9de-b2d4-4963-bc3f-9bde1e5a8acc">26</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtOS0xLTEtMA_544ae0df-ede3-4052-9f40-f1ee0b95eaf1">76,882</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtMTEtMS0xLTA_0dadb142-f4a6-48ef-835c-03187621f99a">398</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded gross credit losses and gross credit recoveries on debt securities totaling $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="INF" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTY0OTI2NzQ0NzM0MQ_007c0925-f6c4-4a3f-9233-59bbefc0fb11">0</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjI4NQ_ecb42552-51b3-4813-9317-5da401fbc9e3">85,000</ix:nonFraction>, respectively, for the three-month period ended June 28, 2020, and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjI5NA_19a02a3e-30bb-4645-8ce8-de0162027a9b">160,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMzQ3Ng_edf6d83a-4a67-4589-8b18-dcf0af93d322">85,000</ix:nonFraction>, respectively, for the six-month period ended June 28, 2020. <ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_1752e1f2-dcca-4d89-b3ba-e9e1dc43ecd6"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_1c1c3cba-cc56-49aa-aed6-5189fcb10763"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_9a82cbba-c76e-49ec-82c4-236512bbc365"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_e515d2fa-b1f2-413f-b802-58d2728d73ad">No</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> credit losses or recoveries on debt securities were recorded for the three-month or six-month periods ended June 30, 2019.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statements of Operations.</span></div></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">14</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><ix:continuation id="i5964d408fead40bda52784fc89c41722"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzkwOQ_9a91e816-b436-499e-925a-b0e1a080fe9e" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"></td><td style="width:78.441%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:17.559%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMC0xLTEtMS0w_2776be02-aaa3-4f1e-bef2-ce5d8962031a">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMS0xLTEtMS0w_9a87529a-fb23-458a-b465-c25e6a24c59b">160</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Decreases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMi0xLTEtMS03Njg1_b3d91d7d-5197-46dd-8279-22b2a8809114">85</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Write-offs </span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMi0xLTEtMS0w_c64f31a6-7f2c-41b7-8e2a-e1712848f04a">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfNC0xLTEtMS0w_74316229-65f7-436b-b050-f702b085678b">75</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded gross realized gains and gross realized losses on the sale of debt securities totaling $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedGains" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzA0OA_56540d61-7b48-44b2-a2d7-4a86a819e238">962,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjMxNA_891754f7-fa89-4b30-be9c-2f320d9e52fc">7,000</ix:nonFraction>, respectively, for the three-month period ended June&#160;28, 2020, and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedGains" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzExNw_073618eb-8f60-4a72-87a6-1a7d93c86f17">394,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzEyNA_268ad60c-4aea-4356-84fd-2905fb5a462c">12,000</ix:nonFraction>, respectively, for the three-month period ended June&#160;30, 2019. The Company recorded gross realized gains and gross realized losses on the sale of debt securities totaling $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedGains" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjM2NQ_d060ade0-9515-4c79-b68f-d0aca87c8052">2,826,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjM3OQ_53d5016f-1362-4d55-9ecc-b6070a4521ff">21,000</ix:nonFraction>, respectively, for the six-month period ended June 28, 2020, and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedGains" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzM3MA_40b1306c-bca3-48d6-9292-e37419c1603d">458,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzM3OA_003d555e-3bc3-4ef6-9cd9-7c1609e44ebf">36,000</ix:nonFraction>, respectively, for the six-month period ended June 30, 2019. These 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, are recorded in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzkxNw_dd384df4-d119-4e39-9111-bd2d0f0fd0e8" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table presents the effective maturity dates of the Company&#8217;s available-for-sale investments as of June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:34.988%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:7.795%;"></td><td style="width:1.0%;"></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.795%;"></td><td style="width:1.0%;"></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.795%;"></td><td style="width:1.0%;"></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.795%;"></td><td style="width:1.0%;"></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.795%;"></td><td style="width:1.0%;"></td><td colspan="3" style="display:none;"></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:8.387%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&lt;1 year</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1-2 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2-3 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3-4 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4-5 Years</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS0xLTEtMS0w_a8e6be7f-2f72-4fb8-be34-20f1d60835ff">42,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS0zLTEtMS0w_6059ee54-d2b6-487f-a032-82e3b371d235">81,987</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS01LTEtMS0w_ded1a643-bfe6-4bef-b49b-7d99bc3f66c4">102,034</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS03LTEtMS0w_485fcb73-c9b8-4b07-af8e-dd7c6c394bec">10,391</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS05LTEtMS0w_46b52c67-f26b-4788-a7c4-5d357e3a28dc">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS0xMy0xLTEtMA_0de20121-fae6-4e52-bd91-9eb6f4eca6fa">236,660</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi0xLTEtMS0w_708c7a16-25a1-46a8-b6ba-d2cd83377b20">34,018</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi0zLTEtMS0w_49b513d4-9aba-42a6-81ce-6c129ee3e423">138,612</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi01LTEtMS0w_8f9f141a-6218-4e6d-889d-7938d863a54f">58,062</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi03LTEtMS0w_be82bf2d-3258-42a7-ae73-9efe04c06e32">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi05LTEtMS0w_961ec377-53d1-4e4d-99f3-0d96f3ca750e">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi0xMy0xLTEtMA_23eb1146-b517-4481-a4e2-6fb087387669">230,692</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy0xLTEtMS0w_8f48ca79-7b36-42a7-a55a-6872996760d8">50,311</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy0zLTEtMS0w_44b15e6c-05e4-4955-93bd-e5f6a56fe5d1">13,750</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy01LTEtMS0w_57290441-23a9-4684-8ab4-18feaaf8a21e">23,308</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy03LTEtMS0w_84cdbbe3-059a-4caa-a92b-b53e19923cea">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy05LTEtMS0w_62b457f9-9631-4bcc-ba9c-a3c9ba9dc139">4,241</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy0xMy0xLTEtMA_a99f0925-a227-4ae9-859b-c6c1f263568a">91,610</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi0xLTEtMS0w_2e5585d5-7a71-4ada-b755-6d1ece306ad3">14,869</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi0zLTEtMS0w_250c8891-ce9e-4497-83df-1602f1c0ade8">9,218</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi01LTEtMS0w_15dc9f21-8239-4866-9413-dc688d8ed833">3,430</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi03LTEtMS0w_9ac56fe1-7cae-4699-bb5c-1b91116867d9">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi05LTEtMS0w_c15bb62c-8628-4263-9fcf-fdea6a7a378d">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi0xMy0xLTEtMA_28931daa-8439-43d0-8ced-70afc19d3fa5">27,517</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xLTEtMS0yNTA0_927f835b-14a4-4a21-9799-0bb18e743b90">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0zLTEtMS0yNTA0_4605782c-4e91-46b4-b896-ba9b82cc94f9">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy01LTEtMS0yNTA0_dc9ba255-08ec-4ca8-8dae-8366f8ce91df">22,054</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy03LTEtMS0yNTA0_c5e0564e-6bfb-4064-be1b-4ec630f558da">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy05LTEtMS0yNTA0_ace0ca01-a2df-4604-a69c-8d09781b4479">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id328d17eff4842a997835619d489bb34_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xMy0xLTEtMjUwNA_9d5f5010-e440-4c8b-ba5a-c238d81e7abc">22,054</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xLTEtMS0w_cff8dcfb-4750-481b-b00e-7c1b03de0b2a">1,638</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0zLTEtMS0w_c47cf5af-c0e2-40bd-8950-9c3db17abf0b">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy01LTEtMS0w_a2e7aeb3-ab39-4241-8d1d-348e3c3d21bb">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy03LTEtMS0w_f71e5bc8-f4b5-4f99-8558-dff3942c2eae">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:zerodash" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy05LTEtMS0w_9bc8cbe6-3663-4a55-8c13-6d6659624e27">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xMy0xLTEtMA_3f7489f4-7d89-4971-aeb9-f605791ddd3a">1,638</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtMS0xLTEtMA_c3337d9c-5c14-40db-bed8-74f2f4a3ad6f">143,084</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtMy0xLTEtMA_88d94897-6cd1-41c7-886c-8aa3d86e5ab9">243,567</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtNS0xLTEtMA_f10f22c9-f6f4-48b9-8d6d-8eca850a9224">208,888</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtNy0xLTEtMA_d445bed4-3138-4176-b53b-13e793b0bed5">10,391</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtOS0xLTEtMA_2e5a3352-a63e-4010-b334-9f38990e59f1">4,241</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtMTMtMS0xLTA_212e7127-35bb-4275-8d17-2ec572dd6080">610,171</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric></ix:continuation><div><span><br/></span></div><div id="iec310d5d14154791acae03eee3bb73e6_55"></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 5: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:InventoryDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfOTMw_c1b5fb47-b544-41d9-9cc0-1b367409ab07" continuedAt="iebac6f4db1014eeb833dd692022d1737" escape="true">Inventories</ix:nonNumeric></span></div><ix:continuation id="iebac6f4db1014eeb833dd692022d1737"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfOTMz_7fe7dd79-9eef-478d-a016-8931164d61f4" escape="true"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:61.011%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:16.128%;"></td><td style="width:1.0%;"></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:16.131%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Raw materials</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryRawMaterialsNetOfReserves" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMS0xLTEtMS0w_52026f11-1ebf-42cc-a3e3-3a34de776654">20,736</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryRawMaterialsNetOfReserves" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMS0zLTEtMS0w_0b0b8177-5855-4760-beda-d99641f76737">27,285</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Work-in-process</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryWorkInProcessNetOfReserves" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMi0xLTEtMS0w_14a2644a-c2ec-43cc-9be4-4713e053fa2e">4,111</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryWorkInProcessNetOfReserves" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMi0zLTEtMS0w_eb4a6159-81b6-4ce1-ae85-849050cde725">5,503</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Finished goods</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryFinishedGoodsNetOfReserves" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMy0xLTEtMS0w_6fabf364-f75c-42c2-9127-b676c502482e">28,106</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryFinishedGoodsNetOfReserves" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMy0zLTEtMS0w_afe9d278-5fd7-4d45-a14b-f030b336f228">27,473</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfNC0xLTEtMS0w_f4546c8a-7fa3-4424-b025-4c3bcb3aa713">52,953</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfNC0zLTEtMS0w_28c7fd3e-f25c-498d-9e3d-9e42b643dac1">60,261</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ExcessAndObsoleteInventoryCharges" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfMTA5OTUxMTYzOTY5Mw_4b972d3c-4661-47ae-befb-c9a328f9950f">7,718,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ExcessAndObsoleteInventoryCharges" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfMTA5OTUxMTYzOTcwNw_d7d191d5-f336-49a7-be6f-2f3485c9ba7a">8,783,000</ix:nonFraction> for the three-month and six-month periods ended June 28, 2020, respectively, which reduced the carrying value of the inventories to their net realizable value. The charges for the three-month period ended June 28, 2020 were due to lower projected sales of excess inventories as a result of deteriorating global economic conditions from the COVID-19 pandemic.</span></div></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">15</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_58"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 6:&#160; <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:LesseeOperatingLeasesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMjEyMw_325da3da-3fb9-4626-b518-55ed0422effe" continuedAt="id06be89f4d4b449b8c2b0f0b5636fb54" escape="true">Leases</ix:nonNumeric></span></div><ix:continuation id="id06be89f4d4b449b8c2b0f0b5636fb54" continuedAt="i7bc0a487128941abac3d16cfc4788d74"><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of June&#160;28, 2020.  Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index.  There were no restrictions or covenants for the leases outstanding as of June&#160;28, 2020.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The total operating lease expense for the three-month periods ended June&#160;28, 2020 and June 30, 2019 was $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfNzk0_a70b08b5-802d-410b-96bc-39e2894c111c">2,147,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfODAx_44445780-70d7-459a-8e83-d1404a22f0fa">1,742,000</ix:nonFraction>, respectively.  The total operating lease cash payments for the three-month periods ended June&#160;28, 2020 and June 30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfOTE3_3657a4d8-c372-4403-97a5-e3b616bcd4e6">2,091,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfOTI0_5d8ddd7d-58b7-4f49-beca-30c53fffcc17">1,669,000</ix:nonFraction>, respectively. 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="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OQ_1ba8b7c9-2fa2-4b2a-bb83-628cb0b84065">23,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTEwNg_08037a0f-92e0-46aa-97c8-73aeba210613">64,000</ix:nonFraction> for the three-month periods ended June&#160;28, 2020 and June 30, 2019, respectively.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The total operating lease expense for the six-month periods ended June 28, 2020 and June 30, 2019 was $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYxNg_24403936-0cb7-43b9-9a76-fc2ba9a6cfb7">4,053,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYwNQ_44711c22-9bbe-4636-81c4-bcee5daa9675">3,227,000</ix:nonFraction>, respectively. The total operating lease cash payments for the six-month periods ended June 28, 2020 and June 30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYyNw_519d5a0e-c585-4274-b840-bfe01e06515f">3,954,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYzOA_83262c54-d3b3-44d5-a0c9-193bfe566366">3,070,000</ix:nonFraction>, respectively. 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="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDY0OQ_b60c3ee0-9468-4bcd-8dc6-b2227f9a13cb">62,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDY1Nw_4723dd7c-f5be-4530-a74c-4fa8538182df">233,000</ix:nonFraction> for the six-month periods ended June 28, 2020 and June 30, 2019, respectively. </span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMjExOQ_746cc691-af22-4bb3-bbd0-35ebcf96af12" escape="true"><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:81.748%;"></td><td style="width:1.0%;"></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:11.324%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amount </span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Remainder of fiscal 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfMS0yLTEtMS0w_1983feec-0953-4dd3-bd4f-1c5965687179">4,335</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2021</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfMi0yLTEtMS0w_adc101ee-4c5d-440b-8f3b-2dbceb1cea2e">8,340</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2022</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfMy0yLTEtMS0w_073e0d27-32e0-4abd-8357-bc79acef9b2b">6,169</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2023</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNC0yLTEtMS0w_7027fd42-4502-44d4-8f36-97a143dfed70">4,973</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2024</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNS0yLTEtMS0w_8ebc4363-21bc-4e51-99b4-46e675178587">2,391</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2025</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:LesseeOperatingLeaseLiabilityPaymentsDueYearSix" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNi0yLTEtMS0w_bd050893-692d-456c-857a-e65f99a2553f">1,322</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNy0yLTEtMS0w_0a3f285d-8082-4bbd-abf2-5fb56f556a5d">4,462</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfOC0yLTEtMS0w_776d468b-b03d-4d4f-9bc8-7adc826578bc">31,992</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTM0Mg_75317c47-7277-4892-9b30-b161e5d05430">28,836,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTM0OQ_25c37c23-228a-4d79-99c6-2f28f8c19260">17,973,000</ix:nonFraction> as of June&#160;28, 2020 and December 31, 2019, respectively.  The Company did not have any leases that had not yet commenced but that created significant rights and obligations as of June&#160;28, 2020 or June 30, 2019. </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTU4MQ_f3d2d5ed-5e65-42ac-abc2-bd19aa8c41ae">4.1</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTU4OQ_aa48667e-c19b-48ca-bffb-6ebb27746e6a">4.8</ix:nonFraction>% for the leases outstanding as of June&#160;28, 2020 and June 30, 2019, respectively.  The weighted-average remaining lease term was <ix:nonNumeric contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTcwOA_6972c2a9-ff6b-45ff-ac96-661ce241f6c8">5.3</ix:nonNumeric> and <ix:nonNumeric contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTcxNg_30e1899a-32b8-4efd-a568-36e067418f27">3.6</ix:nonNumeric> years for the leases outstanding as of June&#160;28, 2020 and June 30, 2019, respectively. </span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As part of the Company's restructuring plan (refer to Note 16), management closed ten leased offices as of June 28, 2020 prior to the end of their lease terms. The carrying value of the lease assets associated with these ten offices has been reduced to <ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt-sec:numwordsen" name="cgnx:OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTY0NDQ0Nw_2da6ec2d-e5a8-4427-a2cf-cb5fbda325d0">zero</ix:nonFraction> as of June 28, 2020, resulting in operating lease asset impairment charges of $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseImpairmentLoss" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTY0NDU0OQ_b41a684b-7199-4d6c-a2ed-8c6c76bb1800">2,534,000</ix:nonFraction> for the three-month period ended June 28, 2020 that are included in "Restructuring charges" on the Consolidated Statements of Operations. Management is currently negotiating early contract terminations for the remaining lease liability obligations associated with these abandoned offices. </span></div></ix:continuation><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"><ix:continuation id="i7bc0a487128941abac3d16cfc4788d74">The Company owns a building adjacent to its corporate headquarters that was partially occupied by a tenant for a portion of the current year. This lease was terminated prior to the end of its lease term during the three-month period ended June 28, 2020. Rental income was $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" name="us-gaap:OperatingLeaseLeaseIncome" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzOTE1MQ_64a45fc9-9bce-434a-8fb7-b14486a1fc8c">0</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLeaseIncome" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTk2Ng_17b2f259-40ad-44ed-ae83-f3b33851a4af">81,000</ix:nonFraction> for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019, respectively, and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLeaseIncome" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzOTE2Mw_bbf9a5d3-6719-4410-ac6c-3734be66c64e">77,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLeaseIncome" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzODY4Mw_ed4254a6-66af-4157-9f01-091a919daeca">158,000</ix:nonFraction> for the six-month periods ended June 28, 2020 and June 30, 2019, respectively. The Company is now fully occupying this building for its operations.</ix:continuation> </span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">16</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_61"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 7:&#160; <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:GoodwillDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RleHRyZWdpb246Njc3MjEwN2MxZDQxNDBhYmJiYWM1YzBmN2IzNmFjNzRfMTI2NDQzODM3NTE3MTA_83d9ddd1-ffe4-49a9-a24b-e4ee95c8869f" continuedAt="i7712f86422884770989cc513cf814bf8" escape="true">Goodwill</ix:nonNumeric></span></div><ix:continuation id="i7712f86422884770989cc513cf814bf8"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfGoodwillTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RleHRyZWdpb246Njc3MjEwN2MxZDQxNDBhYmJiYWM1YzBmN2IzNmFjNzRfMTA1_87d905a9-d203-4536-9a25-10ba38ace9ce" escape="true"><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"></td><td style="width:82.388%;"></td><td style="width:1.0%;"></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:12.876%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RhYmxlOjM3YTkzYWU0MjQ2OTQ4N2FiMDY1ZjA5ZmNkZDJmNTQ0L3RhYmxlcmFuZ2U6MzdhOTNhZTQyNDY5NDg3YWIwNjVmMDlmY2RkMmY1NDRfMC0yLTEtMS0w_f8f1be70-822c-4248-9022-876733b5d170">243,445</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RhYmxlOjM3YTkzYWU0MjQ2OTQ4N2FiMDY1ZjA5ZmNkZDJmNTQ0L3RhYmxlcmFuZ2U6MzdhOTNhZTQyNDY5NDg3YWIwNjVmMDlmY2RkMmY1NDRfMS0yLTEtMS0w_ab1f94c6-b9c4-4e2a-974c-d33f6dd4a0e6">1,009</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RhYmxlOjM3YTkzYWU0MjQ2OTQ4N2FiMDY1ZjA5ZmNkZDJmNTQ0L3RhYmxlcmFuZ2U6MzdhOTNhZTQyNDY5NDg3YWIwNjVmMDlmY2RkMmY1NDRfMi0yLTEtMS0w_a6be7055-7864-476c-8d75-5ff6abde7da9">242,436</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The significant decline in business levels resulting from the COVID-19 pandemic triggered a review of long-lived assets, including goodwill, for potential impairment during the three-month period ended June 28, 2020. Based upon this assessment, management concluded that the reporting unit fair value was not less than its carrying value, and therefore no goodwill impairment charge was recognized for the three-month and six-month periods ended June 28, 2020. Factors that management considered in this assessment included macroeconomic conditions, industry and market conditions, overall financial performance (both current and projected), changes in management or strategy, changes in the composition or carrying value of net assets, and market capitalization.</span></div></ix:continuation><div id="iec310d5d14154791acae03eee3bb73e6_64"></div><div style="margin-top:9pt;"><span><br/></span></div><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 8:&#160; <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTg0Nw_3488d278-42b7-4b5d-92b1-6b5e667b9423" continuedAt="i6ff83235edcd46efba95b13585514eca" escape="true">Intangible Assets</ix:nonNumeric></span></div><ix:continuation id="i6ff83235edcd46efba95b13585514eca" continuedAt="ibc1a42aca4684168a7ab4dfb7826c9f3"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTg1Ng_70833472-534d-40cc-8902-80183952356b" escape="true"><div style="margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Amortized intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.561%;"><tr><td style="width:1.0%;"></td><td style="width:50.276%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:13.418%;"></td><td style="width:1.0%;"></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.418%;"></td><td style="width:1.0%;"></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.420%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Distribution networks</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie83c429fea4647eeb2ed34a6a4a00424_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMS0xLTEtMS0w_3608f463-b2e4-45fb-beaa-f401cc6e9f37">38,060</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie83c429fea4647eeb2ed34a6a4a00424_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMS0zLTEtMS0w_f0c7d76d-992c-4432-9594-4d6f410761a0">38,060</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie83c429fea4647eeb2ed34a6a4a00424_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMS01LTEtMS0w_068ffc7a-af6b-4e79-b7ee-e779d4435af6">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Completed technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMi0xLTEtMS0w_873a846f-b432-4fa2-939b-6832d5f3db2b">21,917</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMi0zLTEtMS0w_bf4208b0-b1e9-47e0-ad26-00a2ed8af7a5">11,035</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMi01LTEtMS0w_bcde63f3-0255-4848-8f68-ada84aaa9e80">10,882</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Customer relationships</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia19541e3a9de4e59b3481c56398dfc07_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMy0xLTEtMS0w_1662e842-3af5-4433-b2a6-038225e17e62">10,578</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia19541e3a9de4e59b3481c56398dfc07_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMy0zLTEtMS0w_cc11429a-8f2b-4c88-afe6-6d66f96234a5">6,795</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia19541e3a9de4e59b3481c56398dfc07_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMy01LTEtMS0w_0c7f6af9-c3c9-4d5d-ae4b-7ba6be3cfde9">3,783</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">In-process technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1ce567eeb149442f9236fa3691572cf6_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNC0xLTEtMS0w_66ddbb50-1e69-43d7-ad58-e642b81041f1">2,300</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1ce567eeb149442f9236fa3691572cf6_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNC0zLTEtMS0w_406b877e-0c53-46d0-a51a-6c0738056e3a">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1ce567eeb149442f9236fa3691572cf6_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNC01LTEtMS0w_ddc3d90b-6a77-4a44-be6c-350966ae8361">2,300</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-compete agreements</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i636ffc42e3da455abbb8e4da25901390_I20200628" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNS0xLTEtMS0w_2a4c7dc1-5c0c-4415-aa32-4a265aebbd39">710</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i636ffc42e3da455abbb8e4da25901390_I20200628" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNS0zLTEtMS0w_f2e4af28-1c74-42e6-bba5-9440fb8edb20">409</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i636ffc42e3da455abbb8e4da25901390_I20200628" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNS01LTEtMS0w_7f4a2e73-010c-42b9-b363-e91879c354ec">301</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Trademarks</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i18c3dda1c1274643908d3ec134b34bea_I20200628" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNi0xLTEtMS0w_3cf37259-defc-4b97-8faa-9b9eac6fb9c4">110</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i18c3dda1c1274643908d3ec134b34bea_I20200628" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNi0zLTEtMS0w_ec835f98-9cb5-43cf-83d9-d5de892cf606">39</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i18c3dda1c1274643908d3ec134b34bea_I20200628" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNi01LTEtMS0w_48574998-ba69-4f6b-9562-19ae84a9cdeb">71</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNy0xLTEtMS0w_aed50d31-799b-408c-9e6b-c0eae421eaa5">73,675</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNy0zLTEtMS0w_f419d6c2-b74b-4dfa-8701-52ae90f8f2e8">56,338</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNy01LTEtMS0w_21efc3e2-35c6-4bb4-abea-a8a8be2ea444">17,337</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Distribution networks</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTAtMS0xLTEtMA_61b308f0-b6a8-4b0d-8d07-816e2ff1a3f3">38,060</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTAtMy0xLTEtMA_c3f183da-cb06-45a1-bc30-b819c7545146">38,060</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTAtNS0xLTEtMA_7bdec4e0-78b7-432a-9944-06f959f87666">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Completed technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTEtMS0xLTEtMA_38ae2136-a986-4e41-98a9-586c0cddceeb">31,987</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTEtMy0xLTEtMA_0bf62401-5008-4e91-addb-fcf521c9e866">9,160</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTEtNS0xLTEtMA_f6f4654e-65b2-4a8e-ba8b-7922a0b5ea17">22,827</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Customer relationships</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1a1a1e7625f040bba2f256af3ded829b_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTItMS0xLTEtMA_a1057608-d27c-4261-92d2-783b5c55d823">14,407</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1a1a1e7625f040bba2f256af3ded829b_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTItMy0xLTEtMA_74c10b96-7eb0-4836-bc77-9187331bca46">6,402</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1a1a1e7625f040bba2f256af3ded829b_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTItNS0xLTEtMA_8c0d85df-9ecc-4ac5-82e6-a421666b2c10">8,005</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">In-process technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5384f6f4408944488866d83556fdb79f_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTMtMS0xLTEtMA_662fdb1c-977b-4c13-9953-f595d0d4e46d">8,200</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5384f6f4408944488866d83556fdb79f_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTMtMy0xLTEtMA_58aca30f-1298-4283-b197-3cd3979fee41">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5384f6f4408944488866d83556fdb79f_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTMtNS0xLTEtMA_d7037ddb-3994-4e56-8f0e-0f469ca841c9">8,200</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-compete agreements</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1f05ac941b69406b9637f7ccd30a80ef_I20191231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTQtMS0xLTEtMA_3414133b-ac2e-4258-aa84-9fdca8c689e1">710</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1f05ac941b69406b9637f7ccd30a80ef_I20191231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTQtMy0xLTEtMA_b5f79cac-3179-412b-a09d-8acbd7390495">350</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1f05ac941b69406b9637f7ccd30a80ef_I20191231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTQtNS0xLTEtMA_9e461c7f-6bb8-454e-a04e-db5045e74292">360</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Trademarks</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie48b0610188d40cc8ab1beab4a72816c_I20191231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTUtMS0xLTEtMA_a6165afc-3014-4088-b6e9-00025b23a7cd">110</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie48b0610188d40cc8ab1beab4a72816c_I20191231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTUtMy0xLTEtMA_ef340946-1071-4021-9ed5-063d3e5db921">12</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie48b0610188d40cc8ab1beab4a72816c_I20191231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTUtNS0xLTEtMA_9622059c-a6bb-4bbf-bfc0-1193b656d0e5">98</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTYtMS0xLTEtMA_7e52ebd1-514b-4389-ba47-c47d2e8daeb6">93,474</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTYtMy0xLTEtMA_4e26b678-f946-4d21-8492-bc2faf33feec">53,984</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTYtNS0xLTEtMA_7888d84b-ec82-4517-8656-9a021863d023">39,490</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:5pt;"><span><br/></span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The significant decline in business levels resulting from the COVID-19 pandemic triggered a review of long-lived assets, including intangible assets, for potential impairment during the three-month period ended June 28, 2020. 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded as the amount by which the carrying value of the asset exceeds its fair value.</span></div></ix:continuation><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">17</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><ix:continuation id="ibc1a42aca4684168a7ab4dfb7826c9f3"><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Based upon this assessment, management concluded that certain of the Company's finite-lived intangible assets failed the recoverability test, and recorded impairment charges for these assets equal to the amount by which their carrying value exceeded their fair value. The Company also measured the fair value and recorded an impairment charge for its indefinite-lived intangible asset related to in-process technologies. The fair values were established, with the assistance of an outside valuation advisor, using the income approach based upon a discounted cash flow model that estimated future revenue streams and expenses attributable to those revenue streams provided by management.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">This review resulted in intangible asset impairment charges totaling $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY2MDU5Mw_136851e4-bfdf-4efe-a00f-54030ed70db3">19,571,000</ix:nonFraction> for the three-month period ended June 28, 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab Co. Ltd. ("Sualab") as a result of the deteriorating global economic conditions from the COVID-19 pandemic. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $<ix:nonFraction unitRef="usd" contextRef="i61b2208174334f058b8a75c11a91b001_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODg4NA_6d6e0690-dc94-45ad-9a0f-1336b1d5ad1d">10,070,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="i06b719aac978489cbc1fdfb106387690_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkwMA_6003ef5b-762d-4fdf-abca-f72ae48ace61">5,900,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="i1bd1a72b1d41496d8f37717244d55fae_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkxMw_7e3c4f61-21f0-4e51-b793-96a66a903bca">3,382,000</ix:nonFraction>, respectively. In addition, customer relationships acquired from EnShape GmbH that had a gross carrying value of $<ix:nonFraction unitRef="usd" contextRef="i36c6597aaabe4fe8a6a2385278ad7483_I20200526" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkyNw_ff44435c-843b-4b02-adbb-3de0011b746f">447,000</ix:nonFraction> and accumulated amortization of $<ix:nonFraction unitRef="usd" contextRef="i36c6597aaabe4fe8a6a2385278ad7483_I20200526" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkzOQ_c07544b2-2bc8-4e4e-9905-bd2e4d8e61bb">228,000</ix:nonFraction> on the measurement date were reduced to <ix:nonFraction unitRef="usd" contextRef="i144afef51ddb4238b254c1bef001d17c_I20200628" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODk2MQ_393c7a64-cd25-4a48-a36f-de1f14703171">zero</ix:nonFraction>, resulting in an impairment charge of $<ix:nonFraction unitRef="usd" contextRef="i035c043ef297493cb2548f6c14daefae_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODk1MQ_29934055-256d-444c-8660-078bf2293337">219,000</ix:nonFraction>.</span></div><div style="text-align:justify;margin-top:5pt;"><span><br/></span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTg1Mg_7c12074b-9f9f-4f9b-92b6-6aaadebc0413" escape="true"><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;">As of June&#160;28, 2020, estimated future amortization expense related to intangible assets was as follows (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:80.723%;"></td><td style="width:1.0%;"></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:14.545%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amount</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Remainder of fiscal 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfMS0yLTEtMS0w_9d219963-0cdb-486d-8e90-410f2e03c52a">1,686</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2021</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfMi0yLTEtMS0w_11844df9-dcb2-4599-9d14-aa460740c372">3,272</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2022</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfMy0yLTEtMS0w_b9d5d036-72ed-409f-8a9e-076f87f3b53b">2,902</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2023</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNC0yLTEtMS0w_52aa4014-4580-4d4b-ade5-9c574502de26">2,211</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2024</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNS0yLTEtMS0w_fd65a55c-a556-458d-9182-cf1bfeb6eeae">1,697</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2025</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNi0yLTEtMS0w_e3a1cd09-652a-494f-b821-e0d2d70129c5">1,374</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNy0yLTEtMS0w_494f8545-403a-48e4-9994-5eb92f351fd3">1,895</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfOC0yLTEtMS0w_a6a108fb-e8ec-4972-8bf8-c1dab1e9d31f">15,037</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">In-process technology is an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.</span></div></ix:continuation><div><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">18</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_67"></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 9: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ProductWarrantyDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RleHRyZWdpb246NTg3ZDBjZTQ3Nzc4NDc2MDhjZWIxOWFhYjU2ZTVjYzNfMTAxNw_5eafe18e-8be3-4151-815a-97baacf4cf56" continuedAt="i8c4c616cc86746238a9053dd1edc035a" escape="true">Warranty Obligations</ix:nonNumeric></span></div><ix:continuation id="i8c4c616cc86746238a9053dd1edc035a"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company records the estimated cost of fulfilling product warranties at the time of sale based upon historical costs to fulfill claims.  Obligations may also be recorded subsequent to the time of sale whenever specific events or changes in circumstances impacting product quality become known that would not have been taken into account using historical data.  While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of our component suppliers and third-party contract manufacturers, the Company&#8217;s warranty obligation is affected by product failure rates, material usage, and service delivery costs incurred in correcting a product failure.  An adverse change in any of these factors may result in the need for additional warranty provisions. Warranty obligations are included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets.</span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RleHRyZWdpb246NTg3ZDBjZTQ3Nzc4NDc2MDhjZWIxOWFhYjU2ZTVjYzNfMTAwOQ_92dc30ad-51ef-437f-b670-a5fb64eeeb62" escape="true"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:79.871%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:16.129%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProductWarrantyAccrual" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfMC0xLTEtMS0w_76d5661e-d394-4e22-9719-6b32e94e0b92">4,713</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Provisions for warranties issued during the period</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfMS0xLTEtMS0w_227506de-10e8-41a4-ae66-d112959073ca">1,493</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fulfillment of warranty obligations</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfMi0xLTEtMS0w_42a8aaa0-654b-4ffc-a0f0-80386a60b2db">927</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProductWarrantyAccrual" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfNC0xLTEtMS0w_e40e4f96-e8f1-4745-a471-7cb2503c3afb">5,279</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric></ix:continuation><div><span><br/></span></div><div id="iec310d5d14154791acae03eee3bb73e6_70"></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 10: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQ2Mg_dbc7ffce-8ac3-41dd-942e-614c064ac8b6" continuedAt="i0ba1d32803b54c38b4c7a4264d1c7cb5" escape="true">Derivative Instruments</ix:nonNumeric></span></div><ix:continuation id="i0ba1d32803b54c38b4c7a4264d1c7cb5" continuedAt="i5478649d43f446e194cf8157f7a61e8f"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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.  Currently, the Company enters into economic hedges to manage this risk.  The economic hedges utilize foreign currency forward contracts with maturities of up to <ix:nonNumeric contextRef="i52434fd077654f68a8f6068def6a4808_D20200101-20200628" format="ixt-sec:durday" name="us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfNDY4_6d88eefd-d2ee-4811-a5c0-019cfe45b619">45</ix:nonNumeric> days 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:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="cgnx:OutstandingForwardContractsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQzOA_00ed2946-3da9-4efa-b18a-04dd5add8e56" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:45.222%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:11.304%;"></td><td style="width:1.0%;"></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.134%;"></td><td style="width:1.0%;"></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.304%;"></td><td style="width:1.0%;"></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.846%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Currency</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Notional<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">USD<br/>Equivalent</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Notional<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">USD<br/>Equivalent</span></td></tr><tr><td colspan="12" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Korean Won</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="krw" contextRef="i3d13b94b64c443f88f275cd93466c73e_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy0xLTEtMS0w_95b4fa78-efa5-4971-a360-ab21fbe89aae">138,690,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3d13b94b64c443f88f275cd93466c73e_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy0zLTEtMS0w_5a39b591-2eae-448a-9c4a-bea314923b37">115,604</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="krw" contextRef="i3ad2ace0eca940538df3133877e1ac52_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy01LTEtMS0w_e7db8738-49d5-4678-aa87-a8d84d261459">161,951,500</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3ad2ace0eca940538df3133877e1ac52_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy03LTEtMS0w_dd2404c3-bcae-4d31-9d8a-ee6cdb97b802">139,688</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Euro</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="eur" contextRef="ie5803dec173141819033849ca19c6690_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC0xLTEtMS0w_b9d056ab-483e-4d62-b509-2836abf57c2f">50,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie5803dec173141819033849ca19c6690_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC0zLTEtMS0w_fe1b4649-be7e-4de6-886f-1ca1fa31c623">56,137</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="eur" contextRef="ibed22609e15b4e6681439903fb4dfb17_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC01LTEtMS0w_b32ca758-ea9d-4e6c-b623-3be734808a16">18,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibed22609e15b4e6681439903fb4dfb17_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC03LTEtMS0w_2db0bf5e-7ea4-483b-80ad-a31a4d765fc6">20,249</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Mexican Peso</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="i03deb9851e37488aa7e18c5b5a973ad0_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS0xLTEtMS0w_b02d7b83-82de-4d49-b240-3910a37c54fe">184,700</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i03deb9851e37488aa7e18c5b5a973ad0_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS0zLTEtMS0w_a803a3d2-bb98-4daa-b179-e7e0529e781a">8,051</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="ia34a7ab335404395a5a6468d1499242e_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS01LTEtMS0w_29ad7853-5586-4a52-82fa-55ce865a965d">80,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia34a7ab335404395a5a6468d1499242e_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS03LTEtMS0w_c344d8e9-9704-43c1-a7ba-abbb48c31ae0">4,223</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Japanese Yen</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="idf51f16be7c64abc9393c4d0c69fa8c8_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi0xLTEtMS0w_ef6692b6-ae3f-464f-8510-b2a8215e64ca">600,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="idf51f16be7c64abc9393c4d0c69fa8c8_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi0zLTEtMS0w_ef659493-d367-4fd4-a5cc-3b2d7967d857">5,587</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="i954f0b7df2b84ed6ac4c336e4218ad01_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi01LTEtMS0w_e1012afa-a9df-4f47-bf14-aacaae2c05e7">575,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i954f0b7df2b84ed6ac4c336e4218ad01_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi03LTEtMS0w_90dccddd-5b21-4940-acb2-f3a9c239a931">5,291</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Hungarian Forint</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="i0ac2e1f496f1499591debaa5712935eb_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0xLTEtMS0yNTc5_ba6b4148-1d83-4d66-8c56-e86976bbf7c1">1,085,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i0ac2e1f496f1499591debaa5712935eb_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0zLTEtMS0yNTc5_5216f750-16f1-4909-b1bc-1de92aae91d0">3,443</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="iadc04b1d29ad44db9ede836751e543c7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy01LTEtMS0yNTc5_d5a19c74-efe4-4a99-bbb2-51b736f541f3">870,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iadc04b1d29ad44db9ede836751e543c7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy03LTEtMS0yNTc5_ca1fc332-f79c-4225-9676-5caab9cecc6c">2,962</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">British Pound</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="i6894568cee88443cb066c775905e6323_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0xLTEtMS0w_e2b2e1b4-6f86-4373-8499-c71dc28749a7">1,940</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i6894568cee88443cb066c775905e6323_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0zLTEtMS0w_024cee84-18cf-45c7-9274-1de0ec285591">2,406</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="jpy" contextRef="id7570fd5e2974a659ce9ebb785ae3365_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy01LTEtMS0w_9421b945-340f-42bd-bf9d-1aaf7ac9bf76">2,700</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id7570fd5e2974a659ce9ebb785ae3365_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy03LTEtMS0w_c9c4bb08-2980-445a-801f-2b0a9fdf6b82">3,569</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Taiwanese Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="twd" contextRef="i1b73edf6a49f4b94ae07c25974b211ec_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0xLTEtMS0yNTg2_d8d16e03-a5b5-4cdf-aa15-17c292144e03">42,765</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1b73edf6a49f4b94ae07c25974b211ec_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0zLTEtMS0yNTg2_85bd2fb2-b3ee-43e2-bef1-9adb2293e860">1,455</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="twd" contextRef="i36467e5f20c049afa2047642a807ca07_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS01LTEtMS0yNTg2_50d9a4fe-de75-4c41-aea4-5b4c35de168f">37,450</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i36467e5f20c049afa2047642a807ca07_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS03LTEtMS0yNTg2_a971e046-030e-4259-8897-01af72c1f81e">1,256</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Canadian Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="cad" contextRef="ib2a6509c1e5e41a58c9916af202e1dd6_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0xLTEtMS0w_5480673e-2cf0-409a-acec-9514daf29291">1,130</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ib2a6509c1e5e41a58c9916af202e1dd6_I20200628" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0zLTEtMS0w_b36a6b8f-1ec2-4f11-a1a2-98e9ff36314c">827</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="cad" contextRef="ic2e0750327a143a0abf3a34b12bff717_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS01LTEtMS0w_53dad113-8ad7-4faa-8dbd-b248bb06c79c">1,300</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic2e0750327a143a0abf3a34b12bff717_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS03LTEtMS0w_203aaafc-0437-4c24-a84d-c3163a5d8e30">1,000</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Singapore Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="sgd" contextRef="i3210059d0c934169b9bff4820113a080_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtMS0xLTEtMA_1851df77-59ad-4a05-9fae-0c9549546bbc">1,090</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i3210059d0c934169b9bff4820113a080_I20200628" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtMy0xLTEtMA_29bceb0e-ce37-4278-8458-0515af38e599">784</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="sgd" contextRef="ia89b9a9abd2a403383c5bb5122616550_I20191231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtNS0xLTEtMA_a19ddd00-8d84-4ccb-a209-db1ed3131908">845</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia89b9a9abd2a403383c5bb5122616550_I20191231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtNy0xLTEtMA_16d4d0d3-805f-496a-a1d6-9a44cf9e6967">628</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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></ix:nonNumeric><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQzMw_73e666f1-76a3-48a7-a44a-f90c30b2c3c3" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:11.049%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:15.008%;"></td><td style="width:1.0%;"></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.662%;"></td><td style="width:1.0%;"></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:11.489%;"></td><td style="width:1.0%;"></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:7.970%;"></td><td style="width:1.0%;"></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.662%;"></td><td style="width:1.0%;"></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:11.495%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset Derivatives</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liability Derivatives</span></td><td colspan="3" style="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-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair Value</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair Value</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sheet<br/>Location</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sheet<br/>Location</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></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="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:<br/></span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Prepaid&#160;expenses&#160;and other current assets</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06aa76c6ba1f4c87b3a8d44c4b2e3844_I20200628" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi0zLTEtMS0w_e8fd823e-2607-463a-861d-1fe7b69ca722">46</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie5e09ca76b6e456781fb8f68ccfc82df_I20191231" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi01LTEtMS0w_ac6df1a9-eb6a-480b-a861-3a7388734ecc">857</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accrued expenses</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ieb8511a4b6a44074b57b566b2eea1569_I20200628" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi05LTEtMS0w_56520d89-57e1-4cca-bbc3-a12636e08066">458</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="idd70e8dc603e4b31a2d3b584eab61514_I20191231" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi0xMS0xLTEtMA_936dd9b6-a59c-4221-adf4-d0d52d53b2ff">23</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">19</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div><span><br/></span></div><ix:continuation id="i5478649d43f446e194cf8157f7a61e8f"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:OffsettingAssetsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQ1Mg_8b9288e6-6485-474f-9b52-e532bf3a0ff6" escape="true"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table presents 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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:18.381%;"></td><td style="width:1.0%;"></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:12.662%;"></td><td style="width:1.0%;"></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:11.636%;"></td><td style="width:1.0%;"></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.768%;"></td><td style="width:1.0%;"></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.662%;"></td><td style="width:1.0%;"></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:11.640%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset Derivatives</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liability Derivatives</span></td><td colspan="3" style="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:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi0yLTEtMS0w_e367c3da-f1b8-428d-b8e7-a3e26c23101d">46</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi00LTEtMS0w_e863d971-b85a-4605-b31d-e0fa26d9e6ac">857</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi04LTEtMS0w_46698b5d-984f-4ef5-b9d5-1d7a29e0c858">458</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi0xMC0xLTEtMA_67583fea-17fa-4a8d-af74-b4e4044ef25c">23</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy0yLTEtMS0w_629fe62c-1d0b-4066-993c-d7c148f9608c">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy00LTEtMS0w_6935c031-dade-43bb-9b23-a3c60bd0671c">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy04LTEtMS0w_72d94542-cd0a-4ea7-9a36-da6c8ef65446">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy0xMC0xLTEtMA_8a3dec6f-8c4e-4c4b-b9ee-c2709041df18">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC0yLTEtMS0w_9634574e-a2c2-4c5a-83b5-53c59d687026">46</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC00LTEtMS0w_d4036240-22c8-4d3c-bc03-5415682fea40">857</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC04LTEtMS0w_99f27f5a-baac-4ecb-a5b1-5bf2fc6387bf">458</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC0xMC0xLTEtMA_c08a9b9d-75a1-4ec0-93f9-a443cd9706e2">23</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div><span><br/></span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQ1MQ_8e8e12a4-15d0-4df7-80a9-08d12919e96a" escape="true"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Information regarding the effect of derivative instruments on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:21.313%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:23.953%;"></td><td style="width:1.0%;"></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.903%;"></td><td style="width:1.0%;"></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.903%;"></td><td style="width:1.0%;"></td><td colspan="3" style="display:none;"></td><td style="width:1.0%;"></td><td style="width:9.730%;"></td><td style="width:1.0%;"></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:8.999%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Location in Financial Statements</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></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></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></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></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></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></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></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></tr><tr><td colspan="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gains (losses) recognized in current operations</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="id0e2a9c3d94042afb732e0872efdfca6_D20200330-20200628" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtMy0xLTEtMA_005fbe41-bd56-4983-bc2d-ba64449e9a0b">60</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i3b0029c533124788896ad55afe18eae3_D20190401-20190630" decimals="-3" sign="-" name="us-gaap:DerivativeGainLossOnDerivativeNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtNS0xLTEtMA_1ce3cd40-305a-43f2-8c2c-49690bafab43">439</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i5bd2140e1d66490ab6f7339ef2eff581_D20200101-20200628" decimals="-3" sign="-" format="ixt:numdotdecimal" name="us-gaap:DerivativeGainLossOnDerivativeNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtNy0xLTEtMA_63bae132-f703-45a3-ace4-886cad089f57">8,180</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i122b2de417f04d2d9a715ebc04773a49_D20190101-20190630" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtOS0xLTEtMA_04dc7d82-2466-42f1-a1b8-cae000a2d6c5">66</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric></ix:continuation><div><span><br/></span></div><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">20</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_73"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 11: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyNw_e0c87ec2-b3a6-40cf-a811-84e089ad5edc" continuedAt="i5a0c6fb1692e47d1b8c18312d3634f8f" escape="true">Revenue Recognition</ix:nonNumeric></span></div><ix:continuation id="i5a0c6fb1692e47d1b8c18312d3634f8f" continuedAt="i26df0b5666394dc287201cbcb3936780"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyMA_8f320b57-a50f-42a9-9a7d-d938da3a5422" escape="true"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:36.011%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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:12.619%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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:12.626%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</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;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Americas</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie3fd972f5b0b4967bf88d0e4de64b1e5_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi0yLTEtMS0w_3bce02f8-5272-47a0-8639-a149b765d084">68,966</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="icd0edf20692d48dbbe6d886aa44e4d84_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi00LTEtMS0w_d69f1cbd-a0ca-478f-8d33-17c861836efd">77,408</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia163194839f34b64a4b66b46db94b3d8_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi02LTEtMS0w_e2fc56ee-1195-4ba3-9ad7-61933beca752">129,214</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1e754cc563fb403d81a3a6443bfadb43_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi04LTEtMS0w_ce0c1b39-c738-49fe-87e8-ee7af8be39c3">142,178</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Europe</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5d22292744df4d90b9f2ce7b901b3753_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy0yLTEtMS0w_d3850f60-4c67-44d6-8cba-d1a16ca008f4">35,987</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia1a183ea47fc4f63a7a2cc9f00e90e77_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy00LTEtMS0w_775d7c0e-8bfe-4992-8a50-2f2d8321703f">59,620</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i150945a1664c4725b713b1051754f224_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy02LTEtMS0w_98e98f74-593b-4af3-a732-d6d128ad7ca0">84,569</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i615c0a4086a840c7bc790f6a8a5f94d5_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy04LTEtMS0w_293de2d2-fae2-44d0-8e2b-a93aab7ef0a7">119,158</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Greater China</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia92ee68fa1bf4f6e98ff25169ba78ae7_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC0yLTEtMS0w_b8e78b87-b741-499c-ad8e-214cb413e251">31,898</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i08025680923a48a4b721007531ace7bd_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC00LTEtMS0w_66ab983f-c5e9-4699-b82d-d7ccb15e1651">35,816</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i903458e444704eabbd9faea8afa62769_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC02LTEtMS0w_863e6e4d-b55a-4a3f-be44-d02b4649bd1b">58,301</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i21e18f7d15034eefab74e871020222be_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC04LTEtMS0w_0e6f17b1-ca92-43cb-a196-baaa855ef611">58,632</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i0b77066fbfca41f8855e5c3a31f6e128_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS0yLTEtMS0w_63c7a29b-3921-41d4-a80a-faf74525767c">32,246</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i8c231dd68f5f4ba7b246f0b6475c4492_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS00LTEtMS0w_ec64126b-6a51-4c8b-94ae-3be3f580267e">26,203</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ea6ea03d6b41eca4e15a32e6db30e9_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS02LTEtMS0w_6910b8d8-4bbc-4166-a4b0-d5cdca122bd3">64,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i694405d7706f467e94016e46a85639a2_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS04LTEtMS0w_ecdd7d8b-5a37-4ce0-9034-6f837d7018fc">52,563</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi0yLTEtMS0w_f2b53917-c4c6-414c-8471-9548019669f9">169,097</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi00LTEtMS0w_878a33f5-a77f-42bf-aa07-f56de587555f">199,047</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi02LTEtMS0w_95588641-0369-4941-81ba-fab800568e0d">336,332</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi04LTEtMS0w_9fecb071-d00b-48ae-8787-4040f2a5e093">372,531</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div><span><br/></span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyNA_091403fe-87a7-4fc6-8929-3b80d7e6bbd7" escape="true"><div><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:36.011%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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:12.619%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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:12.626%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</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;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50380bb827a94448a6ac013d0bc30e84_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi0yLTEtMS0w_071eccb5-ffff-4d4c-90f2-5254c5476ba9">158,807</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1a04c99690a04b70869650f81a2655ca_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi00LTEtMS0w_7df5d69a-7bec-4d3c-a64d-87818e534853">173,368</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i55f5d87a128a4fc586b4d06d1292398c_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi02LTEtMS0w_d4c4378b-580b-4f5a-b5b7-a749014a2b01">311,662</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iadca4fe23d914d9a90eadb8fc73e7efa_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi04LTEtMS0w_2631a7f0-b093-4830-9c6c-39879fb7689d">334,420</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ib256bbe2ed3a4649983bf022671c4f27_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy0yLTEtMS0w_bd3b94d0-cb51-4239-9f12-fe961c40026b">10,290</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1427b972f8194e9bb61bbdeb2ccd1d6a_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy00LTEtMS0w_67f8c277-364d-4457-8ca6-b4ae80313840">25,679</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2cb65854f49c47899ae94365b923117c_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy02LTEtMS0w_4886030d-c1f9-4640-8fde-9626f178ab33">24,670</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ice4024e721f04fb5b7084bc81e5ad7cd_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy04LTEtMS0w_d016cd76-d19d-4acc-8464-1679a4b2a3e8">38,111</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC0yLTEtMS0w_ad39411c-726f-4de0-ab57-daa8be018242">169,097</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC00LTEtMS0w_66359e6c-bc80-4aa5-818e-1caf2abf9be7">199,047</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC02LTEtMS0w_75793f9c-e876-4043-858e-f22a3d6a4b16">336,332</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC04LTEtMS0w_3325cf82-313a-47fa-9c7e-7910796cec21">372,531</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 Sheet and amounted to $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostGross" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfNDUx_abc4ab57-836c-4373-a83f-53a7802223fb">10,888,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostGross" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfNDU4_79ba0fc2-7990-4098-8c60-019b7e09cba4">3,963,000</ix:nonFraction> as of June&#160;28, 2020 and December 31, 2019, respectively.</span></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);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 potential credit losses.  Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">On January 1, 2020, the Company adopted Accounting Standards Update (ASU) 2016-13, &#8220;Measurement of Credit Losses on Financial Instruments,&#8221;  using the modified-retrospective approach, which requires the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to retained earnings as of the beginning of the period in which the guidance is effective. The Company did not record an adjustment to retained earnings as this ASU did not have a material impact on the Company's consolidated allowance for credit losses. </span></div><div style="text-align:justify;margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded credit losses on accounts receivable of $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTc2MA_3845fea9-91f1-4f00-b540-722f1ea13091">300,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTA5OTUxMTYzMDIzNQ_2444b402-5b2f-4ce0-8e7e-943bd8ed0cbd">600,000</ix:nonFraction> for the three-month and six-month periods ended June&#160;28, 2020, respectively.  The Company recorded credit losses on accounts receivable of $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTA5OTUxMTYzMDQ2Ng_10ffe13c-d17e-4ffc-a762-44c43186c088"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTA5OTUxMTYzMDQ2Ng_7bd8b2e2-3aac-4ea9-ac61-b5f906282fc5">90,000</ix:nonFraction></ix:nonFraction> for the three-month and six-month periods ended June&#160;30, 2019. The Company's estimate of expected credit losses takes into account the deteriorating global economic conditions from the COVID-19 pandemic.</span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyOA_2653ed9e-fe7e-4e09-b2ca-72676246972f" escape="true"><div style="text-align:justify;margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"></td><td style="width:78.441%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:17.559%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMC0xLTEtMS0w_a63a6732-adf9-4f1e-8a1d-4d715b75e6ef">530</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMS0xLTEtMS0w_e9edffcd-f5c1-428c-9b0d-c73cdfc5508a">600</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Write-offs </span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMi0xLTEtMS0w_43a9763a-d48c-4cf0-9cb8-da36eebd445a">186</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMy0xLTEtMS0w_16eccd03-bce9-4df9-b3ac-d5c53eda4cbf">1</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfNC0xLTEtMS0w_5047e07e-87b8-4056-8102-3c1be63060f4">945</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric></ix:continuation><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;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 style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:3pt;"><span><br/></span></div><ix:continuation id="i26df0b5666394dc287201cbcb3936780"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:DeferredRevenueByArrangementDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyOQ_c0cc11b7-aacb-4879-b804-4447b0e4b5f3" escape="true"><div style="margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"></td><td style="width:78.441%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:17.559%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMC0xLTEtMS0w_acca3e3e-86ed-46ab-8bc3-f4f5935a63eb">14,432</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to deferred revenue and customer deposits</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueAdditions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMS0xLTEtMS0w_3056ded7-ae37-449d-b6ff-bccc58d4edae">57,904</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Recognition of revenue</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueRevenueRecognized1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMi0xLTEtMS0w_1fde023d-78d7-450b-9550-06efaf48ab5f">25,493</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" name="cgnx:DeferredRevenueForeignCurrencyExchangeAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMy0xLTEtMS0w_4d1f4602-5812-4933-aea6-5e0aa5a01515">105</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfNC0xLTEtMS0w_d945c0a8-faf3-4e67-b225-4060a5bffeab">46,738</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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, as our contracts have an original expected duration of less than one year.</span></div></ix:continuation><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">22</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_76"></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 12: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:CompensationRelatedCostsGeneralTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzkwNQ_08d1066c-fd72-418c-a314-25b915dc9da5" continuedAt="idd162d9413d64375a23722cb7ad2a300" escape="true">Stock-Based Compensation Expense</ix:nonNumeric></span></div><ix:continuation id="idd162d9413d64375a23722cb7ad2a300" continuedAt="i5316ce99cf884fc29d20408de87fdb2d"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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").  As of June&#160;28, 2020, the Company had <ix:nonFraction unitRef="shares" contextRef="ie90d730c1a5d4b67aae424e063c904d5_I20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjE3_d626f7ff-adde-41c8-8c2e-cb405ff689bf">16,335,000</ix:nonFraction> shares available for grant 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:id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzk2_c9b27df8-2451-462e-927f-008a5aa7ff1c">four</span> or <ix:nonNumeric contextRef="i391830b02fb64117bcee6d7a82c55844_D20200101-20200628" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfNDAy_027c5916-4eeb-4106-b1da-494ecdd977bf">five years</ix:nonNumeric> based upon continuous service and expire <ix:nonNumeric contextRef="i78f7ce06fb6c4a8abe700d7761a911b6_D20200101-20200628" format="ixt-sec:durwordsen" name="cgnx:ExpirationPeriodOfStockOptionPlan" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfNDQ2_567ace9b-ee56-481e-862c-a5a867b647d4">ten years</ix:nonNumeric> from the grant date.  RSUs generally vest upon <ix:nonNumeric contextRef="i7bd2b61d8f8f46cc9ab61ef640de74bc_D20200101-20200628" format="ixt-sec:durwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfNDk2_7465cc31-0465-41ce-9dec-b5797a2501c2">three years</ix:nonNumeric> of continuous employment or incrementally over such three-year period.  Participants are not entitled to dividends on RSUs. </span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzg4Mg_63a3e34a-4af1-4e58-9c76-54f711ad6cb7" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020:</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:36.799%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:13.373%;"></td><td style="width:1.0%;"></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:11.323%;"></td><td style="width:1.0%;"></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.226%;"></td><td style="width:1.0%;"></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.083%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term&#160;(in&#160;years)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Aggregate<br/>Intrinsic<br/>Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Outstanding as of December 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMS0xLTEtMS0w_3609c657-4f0f-4bfd-ae21-5c626b881aef">12,899</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMS0zLTEtMS0w_e3afd702-0a45-411a-91d8-d062b81d9526">37.95</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Granted</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMi0xLTEtMS0w_9412c403-e704-48df-9a81-364c2de22709">975</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMi0zLTEtMS0w_dab4bccf-8d1a-49e5-a20e-15fead277a0b">51.58</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Exercised</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMy0xLTEtMS0w_e838f14d-09d6-472b-8b12-756c15dff701">1,822</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMy0zLTEtMS0w_56de5967-4629-4ee1-a726-7e754ba77573">26.47</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Forfeited or expired</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNC0xLTEtMS0w_5db82225-5517-4a72-b57b-924b348bae46">421</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNC0zLTEtMS0w_644dcf2e-3d65-4b9d-9c56-8eb57e14567e">50.28</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Outstanding as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS0xLTEtMS0w_c6dc03cd-3666-4ee1-9459-43c4cabc9b23">11,631</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS0zLTEtMS0w_3db13321-f5f0-4f44-929a-0e329a813d3c">40.45</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS01LTEtMS0w_e28cc103-d32b-45dd-a9ae-f4b0cf65eacd">6.98</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS03LTEtMS0w_c59f6748-1c0b-4308-b54f-ff77f076e89a">212,847</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Exercisable as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi0xLTEtMS0w_cbb97d3a-5437-4b27-a4c5-7bcbc027c133">5,331</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi0zLTEtMS0w_c7c8a78f-70ae-4cde-9bd4-50b29c7adc2b">31.59</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi01LTEtMS0w_363d2c2d-6830-4e02-ab48-af3621e31425">5.81</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi03LTEtMS0w_c78c062b-7eb9-4ef6-8ab2-d91561dd4f36">144,694</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Options vested or expected to vest as of June 28, 2020 (1)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy0xLTEtMS0w_640a2e59-2383-4848-b465-1b6a19021b89">10,683</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy0zLTEtMS0w_90b84edd-8add-494f-b91f-7ae5be8ec78b">39.58</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy01LTEtMS0w_76940349-a4bd-46bd-8af4-87f604b4eba3">6.85</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy03LTEtMS0w_be3ec026-ef2c-4169-a23b-5fa41718597c">204,795</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="padding-left:36pt;text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#160;(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></ix:nonNumeric><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzg3MA_3e258788-0002-4d22-a500-93e3be15818e" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:37.327%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:12.619%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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.626%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months&#160;Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Risk-free rate</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi0xLTEtMS0w_6682cfa0-f2a5-4388-927b-0cb6861da466">1.6</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi0zLTEtMS0w_996d2cec-1d64-48e4-8bbe-131f19de2124">2.7</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi01LTEtMS0w_fdecc1f5-0254-497d-8255-60d175d34049">1.6</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi03LTEtMS0w_de85d9b5-2c3f-46e4-87d3-008f7765c4cc">2.7</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected dividend yield</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy0xLTEtMS0w_f4de3939-47fc-4c4c-a7b7-dce0126abb50">0.43</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy0zLTEtMS0w_929c66ab-400e-477f-a813-5236f5a044e7">0.39</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy01LTEtMS0w_5a4427db-ab23-4085-9e2a-eb30f138309b">0.43</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy03LTEtMS0w_f277086f-673c-446a-96a4-27ff49199b0e">0.39</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected volatility</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC0xLTEtMS0w_17fbf144-9392-4197-b8c9-b86ed3423360">37</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC0zLTEtMS0w_0097e889-d6d0-4123-b7c0-3beb5e9d491d">37</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC01LTEtMS0w_5ec94720-8cb6-4a5d-9913-d31e27205368">37</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC03LTEtMS0w_c864ae43-1e85-4f18-b121-e5ab0ad56690">37</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected term (in years)</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS0xLTEtMS0w_589d5604-2ba4-44fa-a447-377789b0159f">6.0</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS0zLTEtMS0w_5e696186-445e-47d3-af51-74127fb91676">5.2</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS01LTEtMS0w_2407ffc3-5e41-4412-bca8-06d05b0d4c1f">6.0</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonNumeric contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS03LTEtMS0w_ca7b5064-00f3-49ef-8eb3-738897e62598">5.3</ix:nonNumeric></span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Risk-free rate</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The risk-free rate was based upon a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Expected dividend yield</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Generally, the current dividend yield is 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Expected volatility</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The expected volatility was based upon a combination of historical volatility of&#160;the Company&#8217;s 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Expected term</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">23</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><ix:continuation id="i5316ce99cf884fc29d20408de87fdb2d"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The weighted-average grant-date fair values of stock options granted during the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $<ix:nonFraction unitRef="usdPerShare" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTk2Nw_9a00b492-84ca-4716-b423-c74674656f3f">19.13</ix:nonFraction> and $<ix:nonFraction unitRef="usdPerShare" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTk3NA_6fcfb2bc-50f5-4e0a-9564-28f2b79b800b">18.68</ix:nonFraction>, respectively. The weighted-average grant-date fair values of stock options granted during the six-month periods ended June 28, 2020 and June 30, 2019 were $<ix:nonFraction unitRef="usdPerShare" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjk1OA_e7585c21-cad2-41fc-b6c2-134f1569b7fb">18.52</ix:nonFraction> and $<ix:nonFraction unitRef="usdPerShare" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMTg5OQ_26fb5699-2991-47a9-b753-15afec8f10fa">18.59</ix:nonFraction>, respectively.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The total intrinsic values of stock options exercised for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjA5Ng_e4aff4c2-f776-4b5f-abe2-04d78baf172c">39,359,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjEwMw_c8a985d8-efa8-4e00-be7c-af5e784d4ed4">14,220,000</ix:nonFraction>, respectively.  The total intrinsic values of stock options exercised for the six-month periods ended June 28, 2020 and June 30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjA2Mw_69f92b07-7793-4eca-97c5-3c92c4b9a6e1">53,814,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjA2NQ_8030a598-ea99-4c09-ba76-c26727bed2f2">36,799,000</ix:nonFraction>, respectively. The total fair values of stock options vested for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjIxNw_f8c7579b-b2dd-43e7-8b3d-9399914b2522">1,287,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjIyNA_71de4057-1a72-436e-85a8-2cac9421f176">887,000</ix:nonFraction>, respectively. The total fair values of stock options vested for the six-month periods ended June 28, 2020 and June 30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjI1Mg_2066ad94-ab7b-4727-8ea8-4616fe88d160">37,951,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjI1NA_cbd4f12c-a7c4-4613-8648-2beaca513b15">30,859,000</ix:nonFraction>, respectively.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzg3OQ_7ed19c61-6478-41f2-ad92-a6398fc052df" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June 28, 2020: </span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:64.520%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:14.812%;"></td><td style="width:1.0%;"></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.938%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares<br/>(in thousands)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Nonvested as of December 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i9e0c96315b424e56924808a79a15e591_I20191231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMS0xLTEtMS0w_68a7d926-b781-4d6b-b911-e3587523d1cf">150</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i9e0c96315b424e56924808a79a15e591_I20191231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMS0zLTEtMS0w_52db9227-6acb-44fc-92b8-f1d40efd839d">48.63</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Granted</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMi0xLTEtMS0w_28d7a5cb-d397-4841-9532-c02d78ad97d6">432</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMi0zLTEtMS0w_eb6f1e66-cb2f-4e9a-b2d4-cfa289450724">51.53</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Vested</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMy0xLTEtMS0w_058fbd42-ddd6-44f9-82ad-8df66b06b09f">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="2" format="ixt:zerodash" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMy0zLTEtMS0w_bf7de766-324f-45d0-ad2d-67ff3e5bd7a5">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Forfeited or expired</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="shares" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNC0xLTEtMS0w_903cf674-6a54-4517-816c-cf8676e796e8">21</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNC0zLTEtMS0w_7a3b77b4-73a8-4e5f-9836-9955d295ba0e">50.54</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Nonvested as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i8ee7be1a6ecf4ed7815ed69f7dac42cd_I20200628" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNS0xLTEtMS0w_deb239fd-7a98-41ec-811f-615de12f6dfd">561</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usdPerShare" contextRef="i8ee7be1a6ecf4ed7815ed69f7dac42cd_I20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNS0zLTEtMS0w_b6aecb41-4492-4550-89ba-f203547baa0d">50.79</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The weighted-average grant-date fair values of RSUs granted during the three-month and six-month periods ended June 28, 2020 were $<ix:nonFraction unitRef="usdPerShare" contextRef="ib8b0bf2a77834ce88571dd01f83e0cca_D20200330-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjQ5OA_be0f507f-9275-4a9e-9337-68527350f04c">56.97</ix:nonFraction> and $<ix:nonFraction unitRef="usdPerShare" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjUyOA_1b5794a7-3d66-4f82-bfc0-56c1281eeb52">51.53</ix:nonFraction>, respectively.  There were <ix:nonFraction unitRef="shares" contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjUxNA_924a1164-592b-4405-848c-666b68686a39">no</ix:nonFraction> RSUs that vested during the three-month and six-month periods ended June 28, 2020.  There were <ix:nonFraction unitRef="shares" contextRef="i55b074489f724905bac5ce61e111c0c8_D20190101-20190630" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjU5OA_c3715082-0051-4f6a-85f9-bab87f1bd5c7">no</ix:nonFraction> RSUs granted or vested during the three-month and six-month periods ended June 30, 2019.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt-sec:numwordsen" name="cgnx:NumberOfGroupsWithinEmployeePopulation" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjc2MQ_f9c0e007-fc41-40a7-878b-09e1d08a4546">two</ix:nonFraction> groups: one 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="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjkyNQ_8805c26c-0ac2-4198-8002-a2aa80d2b7bb">7</ix:nonFraction>% to all stock-based awards for senior management and a rate of <ix:nonFraction unitRef="number" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjk4NQ_764542b9-c1d4-4966-ab2e-be4feaea3ffd">12</ix:nonFraction>% for all other employees.  Each year during the first quarter, the Company revises its forfeiture rate.  This resulted in an increase to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzE0OA_708e6148-71bd-4349-b03a-993f2cc241a4">1,787,000</ix:nonFraction> in 2020 and a decrease to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzIwMQ_6a126689-771d-4729-a068-38b134b5a788">499,000</ix:nonFraction> in 2019.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As of June&#160;28, 2020, total unrecognized compensation expense related to non-vested equity awards, including stock options and RSUs, was $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzMzOA_7388dc87-8d4f-4433-88ae-6ab623704df3">65,128,000</ix:nonFraction>, which is expected to be recognized over a weighted-average period of <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" format="ixt-sec:duryear" name="cgnx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzQxMQ_93fd8278-3d7d-4292-9334-7fa770a5e2cc">2.0</ix:nonNumeric> years.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the three-month period ended June&#160;28, 2020 were $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzU1MQ_6ad304f9-3dde-495a-b4aa-1a5fc89a62d2">8,018,000</ix:nonFraction>, which includes credits of $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTY0OTI2NzQ0NzUwMg_b1b9d5d9-ffdd-4985-adaa-47c7dc5826bc">1,401,000</ix:nonFraction> relating to grants cancelled as a result of the Company's workforce reduction, and $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzU1OA_39a3cea2-8d89-412f-b315-527c958bdd45">1,277,000</ix:nonFraction>, respectively, and for the three-month period ended June&#160;30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzYyMQ_c944bf3c-103d-409b-842f-d2a1a56bf92e">10,967,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzYyOA_61420db9-e879-4bb9-8087-53a057694017">1,813,000</ix:nonFraction>, respectively. The total stock-based compensation expense and the related income tax benefit recognized for the six-month period ended June 28, 2020 were $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyMQ_8b58ae1f-fc98-41b0-ab73-3f9b4f1f4ce7">22,808,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyMg_28c31e6c-2afe-43fe-bad9-d1e476a619ea">3,841,000</ix:nonFraction>, respectively, and for the six-month period ended June 30, 2019 were $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyNQ_98a610f8-a53f-488c-87a1-f10371366756">23,248,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyNg_28779737-dfa7-49c1-9140-56c91073b255">4,035,000</ix:nonFraction>, respectively. <ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="INF" format="ixt-sec:numwordsen" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzY0Ng_1ed4be07-8889-4451-819f-e7e9f712b8d8">No</ix:nonFraction> compensation expense was capitalized as of June&#160;28, 2020 or December&#160;31, 2019.</span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzkwOA_56466aaa-40cc-4e8e-8866-0e006b966607" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:37.912%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:12.619%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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.041%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cost of revenue</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i06a9f689529d44ea9723e6cc0ac766fa_D20200330-20200628" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi0xLTEtMS0w_4e188427-fcff-4e3e-b9bf-c41b400d9751">363</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2ef068d8c3c14069905ba89e9a6b5eaa_D20190401-20190630" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi0zLTEtMS0w_a2fdefcc-1994-4aaa-aac9-2a8eae3617dc">329</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if63a5b3ff51747a7acf2b9763080259c_D20200101-20200628" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi01LTEtMS0w_353d08d3-9576-4bba-884a-a0bcc942cf6c">717</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i8510b9a70cf64f7fbdd4bcffe5856f2d_D20190101-20190630" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi03LTEtMS0w_efb68a27-9271-4e89-bb4d-4fe10333dd7f">780</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Research, development, and engineering</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie7d349cddf79450fb7ec61b59469955c_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy0xLTEtMS0w_905c2725-6d4b-48b6-8acf-1fcba17957e4">2,401</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie522880486f84d7595b434ed962eacd6_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy0zLTEtMS0w_d8849fc7-7938-4857-9476-83c6503c0e46">3,550</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i1549c24baeea47a0b54ff9b987a12358_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy01LTEtMS0w_e37cfe48-b98b-42a4-9193-bd5ec914e579">7,767</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibb66e794d1264711afdf4f25a22af3de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy03LTEtMS0w_7e9838b2-76c3-4b70-acbf-ddfabcbf6f1c">8,017</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Selling, general, and administrative</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i5f0dde5ff23b474383f628184c115137_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC0xLTEtMS0w_15d277d1-1419-4a54-be69-58e82decc6da">5,254</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i0bcda0824b2844a28394aaae0d03e9d3_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC0zLTEtMS0w_78cbb6a9-0669-4431-9286-d43a25cacda9">7,088</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2f37aff1307a4ab9be50829bdda812dc_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC01LTEtMS0w_d9ef8f3b-0223-443f-b982-2d52d09133b0">14,324</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibe0b75c6204c46e9b19b07d490ffda88_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC03LTEtMS0w_d723e5f4-2713-44d2-8765-71fbdb8afd12">14,451</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS0xLTEtMS0w_34c8bfe1-2486-43fd-8d21-e21451ff3402">8,018</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS0zLTEtMS0w_a050f8cb-6371-4f4d-ae64-8ba2e9f7cc26">10,967</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS01LTEtMS0w_0dec35a7-7737-49aa-97bc-76c5315383ec">22,808</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS03LTEtMS0w_4b699fce-96d7-4775-8405-f16c2798d38d">23,248</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div></ix:nonNumeric></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">24</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_82"></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 13: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTM3NDM4OTUzNDg2NDM_2a85669c-4a12-4f55-bed3-78c4e24ae11b" continuedAt="i2adcd199f991422c8ba75cfb79acc024" escape="true">Stock Repurchase Program</ix:nonNumeric></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"><ix:continuation id="i2adcd199f991422c8ba75cfb79acc024">In October 2018, the Company's Board of Directors authorized the repurchase of $<ix:nonFraction unitRef="usd" contextRef="i979d000c5483415184aa8b9629ee1c46_I20181029" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTE4_03bd4148-33fc-49be-b068-434438855f88">200,000,000</ix:nonFraction> of the Company's common stock.  As of June&#160;28, 2020, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="i5cde25447c244a5a90a1b77b05f9c5f1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:StockRepurchaseProgramAggregateNumberofSharesRepurchased" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTg3_d07da46c-4deb-4670-a207-1cc760d59f45">2,816,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="i5cde25447c244a5a90a1b77b05f9c5f1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:StockRepurchaseProgramValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMjEw_1eb0bd00-7a68-4c56-b951-4dee78fbd62f">121,348,000</ix:nonFraction> under this program, including <ix:nonFraction unitRef="shares" contextRef="i0097f887461345248832cb36df04c1cd_I20200329" decimals="-3" format="ixt:numdotdecimal" name="cgnx:StockRepurchaseProgramAggregateNumberofSharesRepurchased" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTY0OTI2NzQ0Mjg1OQ_0be73ff7-1caa-4caf-8059-1098a65dae99">1,215,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="i0097f887461345248832cb36df04c1cd_I20200329" decimals="-3" format="ixt:numdotdecimal" name="cgnx:StockRepurchaseProgramValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTA5OTUxMTYyODkwMg_c3096c71-0190-4023-9473-cb23a01aeebc">51,036,000</ix:nonFraction> during the three-month period ended March 29, 2020, leaving a remaining balance of $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMzQw_6081def5-87ee-41c4-8249-e7b88459355b">78,652,000</ix:nonFraction>. No shares were repurchased during the three-month period ended June 28, 2020. On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $<ix:nonFraction unitRef="usd" contextRef="i5d0c9481bd7d4ef49f533e75018c9e9b_I20200312" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfNDM5_1fbd0fe0-e966-46ff-993c-abf9b2e96811">200,000,000</ix:nonFraction> of the Company's common stock.  Purchases under this March 2020 program will commence upon completion of the October 2018 program.  The Company may repurchase shares under these programs in future periods depending upon a variety of factors, including, among other things, the impact of dilution from employee equity 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.</ix:continuation> </span></div><div id="iec310d5d14154791acae03eee3bb73e6_85"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 14: Income <ix:nonNumeric contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" name="us-gaap:IncomeTaxDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYzMg_f3713924-b033-4f28-8e9e-7f6526b0a5b2" continuedAt="id934abab0e494c439f7be71b0d2b9cda" escape="true">Taxes</ix:nonNumeric></span></div><ix:continuation id="id934abab0e494c439f7be71b0d2b9cda" continuedAt="i56ef53ca422c438fada2423cae604b52"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYyMw_30375fac-0abc-41c0-ad89-8ef3a2d0d483" escape="true"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">A reconciliation of the United States 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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:41.128%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:11.888%;"></td><td style="width:1.0%;"></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.450%;"></td><td style="width:1.0%;"></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.888%;"></td><td style="width:1.0%;"></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.456%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months&#160;Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="INF" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi0xLTEtMS0w_795e8c7c-77ea-4993-974e-5d94fa9a2a77">21</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="INF" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi0zLTEtMS0w_75a64ce7-16b8-4aac-a2da-98c67dc6a4fe">21</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="INF" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi01LTEtMS0w_cc420eef-338a-4ba5-adad-086880fd4507">21</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="INF" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi03LTEtMS0w_a293897b-cec0-4e91-ab07-c23f06c90a6a">21</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">State income taxes, net of federal benefit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy0xLTEtMS0w_ae4e3239-d06c-4154-854b-d406dece2fb2">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy0zLTEtMS0w_ad275c88-1e1e-4f38-a872-41d0a7d5860c">1</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy01LTEtMS0w_49186dea-2b3b-4df0-bfa2-465e521850dc">1</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy03LTEtMS0w_910994e4-cf15-4a91-a645-2f807601645d">1</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign tax rate differential</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC0xLTEtMS0w_462f0a30-25fb-4983-9973-a23ae59e3dbd">5</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC0zLTEtMS0w_7b690ebc-a726-4d3b-82cd-c4ca23e9444a">7</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC01LTEtMS0w_eb3d1efd-911f-4af6-9a7e-00d7e114fc37">5</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC03LTEtMS0w_17121660-7d09-4a9a-8993-b60533b374be">7</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Tax credit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS0xLTEtMS0w_e35e2934-bd3d-4150-900e-6348a0ccf3ac">2</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS0zLTEtMS0w_4bf4252b-ea94-4108-a706-9bd4a748b5c2">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS01LTEtMS0w_39f1bac5-d7e1-4771-a308-b4e6b52d3949">2</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS03LTEtMS0w_dc49a246-ec8a-455b-af3f-68302435036c">1</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Discrete tax benefit related to stock options</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy0xLTEtMS0w_e1f6f751-7aaa-4fd6-94a8-677051588946">191</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy0zLTEtMS0w_d2170d50-3c76-457b-a262-6353275aaf60">2</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy01LTEtMS0w_be19611d-3540-4f50-8462-31f8a6155121">29</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy03LTEtMS0w_b35b7cc8-5b85-4c3e-8eee-599c7b7dc163">4</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC0xLTEtMS0w_0d93e2db-0910-45d0-8b67-10b31472d228">141</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" format="ixt:zerodash" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC0zLTEtMS0w_d4262412-98b5-4a3c-9bbc-cf05707d3d3d">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC01LTEtMS0w_72f09d18-abd7-4dd7-a6fd-8da0b4427f0a">17</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" format="ixt:zerodash" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC03LTEtMS0w_0278f3af-5a6d-4012-925d-9d469c652a09">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Tax rate adjustment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0xLTEtMS03OTU1_57ef8037-7c9a-4112-830c-6117f9b23186">18</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" format="ixt:zerodash" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0zLTEtMS03OTU1_10709673-688a-46db-9c22-0784c2d6dd8d">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" format="ixt:zerodash" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS01LTEtMS03OTU1_56118592-370e-41cc-bbe6-74b574ee9377">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" format="ixt:zerodash" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS03LTEtMS03OTU1_43eb9569-e471-4fcd-92a7-12fd2c658bfd">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0xLTEtMS0w_4a060a00-0418-4c65-b55b-ac74bb347729">4</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0zLTEtMS0w_63917600-fc80-46f8-93d0-ff94fc849458">2</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS01LTEtMS0w_fd74c040-141f-4a62-bbc7-8f6a94204127">4</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS03LTEtMS0w_62b7e6a0-6ea9-4a06-a2df-e6e5e8cb68a5">2</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income tax expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtMS0xLTEtMA_6671856d-0958-435d-a4ea-af03f66d24ae">51</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtMy0xLTEtMA_cb8c0012-1b6c-45b1-82b9-e09b98245232">14</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtNS0xLTEtMA_f82d1e1e-72c3-466b-b76b-b0e9304b30f1">7</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtNy0xLTEtMA_b0752b4b-072d-4284-bb4b-0220cf687931">12</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr></table></div></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company is tax resident in numerous jurisdictions around the world and has identified its major tax jurisdictions as the United States, Ireland, and China.  The statutory tax rate is <ix:nonFraction unitRef="number" contextRef="i7a9496e00eaf4823b5faa46ab099e121_D20200101-20200628" decimals="INF" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMzY3_d142506e-4462-40da-89d5-15bd3f961da8">12.5</ix:nonFraction>% in Ireland and <ix:nonFraction unitRef="number" contextRef="i49d1dd25fc2b4d3abb5872982813204c_D20200101-20200628" decimals="INF" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMzg1_dc199b8e-bec3-4b6f-95a3-06f625b60121">25</ix:nonFraction>% in China, compared to the U.S. federal statutory corporate tax rate of <ix:nonFraction unitRef="number" contextRef="i7746c332c79744f58927e204e4f386b3_D20200101-20200628" decimals="INF" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfNDU5_57a2d6b0-957d-49d0-84b5-58e8738e705b">21</ix:nonFraction>%. These differences resulted in a favorable impact to the effective tax rate of <ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfNTMz_5a5e1edf-da40-4e38-889d-b7196cab51ad"><ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfNTMz_d5dc5369-230d-457f-814e-84f40161bf73">5</ix:nonFraction></ix:nonFraction> percentage points</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;"> </span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">for both the three-month and six-month periods ended June 28, 2020, and <ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzMDczOQ_8f8f625e-77d7-4a2e-b806-500e31be7a9a"><ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzMDczOQ_c7d5e104-c97b-4004-9fcb-c671b391deed">7</ix:nonFraction></ix:nonFraction> percentage points for the same periods in 2019. 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.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded discrete tax benefits arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock exercises that resulted in a favorable impact to the effective tax rate of <ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTEwOQ_1d54fde5-5a58-45ca-b0e0-9ccf2e26ca5e">191</ix:nonFraction> and <ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTM3NDM4OTUzNTYzMDk_04ba84cc-1d7f-4876-abcc-5ad7b8245e3c">29</ix:nonFraction> percentage points for the three-month and six-month periods ended June 28, 2020, respectively, and <ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTExNg_f5b8de01-c19e-4d04-97c0-ce6360d083b1">2</ix:nonFraction> and <ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjE3NQ_f6f9daef-125d-4f45-a49c-cbffd062f19c">4</ix:nonFraction> percentage points for the same periods in 2019. In addition, the Company recorded discrete tax expenses related to the final true-up of the prior year tax accrual upon filing the related tax return that resulted in an unfavorable impact to the effective tax rate of <ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjE1OA_996ec8d8-323e-4b16-b02a-22ab5fc85ffd">141</ix:nonFraction> and <ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjE2NA_6053cb09-c6f3-4429-924c-3a08b525a014">17</ix:nonFraction> percentage points for the three-month and six-month periods ended June 28, 2020, respectively.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Excluding the impact of these discrete items, the Company&#8217;s effective tax rate was a benefit of <ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" sign="-" name="cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwMg_a00682fe-01f1-44fb-9e4c-17f439d933a6">1</ix:nonFraction>% of pre-tax loss and an expense of <ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwMw_ec30ef5d-f3b9-42be-a997-b6ab673dd80f">19</ix:nonFraction>% of pre-tax income for the three-month and six-month periods in 2020, respectively, compared to an expense of <ix:nonFraction unitRef="number" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNA_ddb8750d-cb05-4eb8-beb9-5c871345038e">17</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNQ_942d6b31-4e38-431a-ab3f-6b5ec0b9abd6">16</ix:nonFraction>% of pre-tax income for the same periods in 2019.  The increase in the effective tax rate, excluding the impact of discrete items, for the six-month period from <ix:nonFraction unitRef="number" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNg_bb4f9f05-8210-4792-94af-604ce15bfaa5">16</ix:nonFraction>% in 2019 to <ix:nonFraction unitRef="number" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNw_b5d76609-99dc-447f-acd7-ac7b09166837">19</ix:nonFraction>% in 2020 was due to more of the Company's profits being earned and taxed in higher tax jurisdictions. This adjustment to the effective tax rate resulted in an <ix:nonFraction unitRef="number" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjIyMw_c95b0ee8-335f-41a7-a4f9-0c20697dbded">18</ix:nonFraction> percentage-point impact on the effective tax rate for the three-month period ended June 28, 2020.</span></div></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">25</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><ix:continuation id="i56ef53ca422c438fada2423cae604b52" continuedAt="icb39b815d4c145e184187cc23779965a"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">During the six-month period ended June&#160;28, 2020, the Company recorded a $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTI1Ng_a54bdbda-98fe-4f03-a6d6-46d9ff6a2186">710,000</ix:nonFraction> increase in reserves for income taxes, net of deferred tax benefit.  Estimated interest and penalties included in these amounts totaled $<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:IncreaseDecreaseInterestAndPenalties" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTM5NQ_84e87ab7-82ba-4171-b940-0b95bc18312b">283,000</ix:nonFraction> for the six-month period ended June&#160;28, 2020.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:LiabilityForUncertainTaxPositions" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTUxNg_c4c4b27c-0e86-4c0f-be1b-d748a0856ce7">13,330,000</ix:nonFraction> as of June&#160;28, 2020, which included $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTU0NA_45a4126d-0f0a-472b-b26b-673f031997b3">12,302,000</ix:nonFraction> classified as a non-current liability and $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTU4OQ_66b1112d-a9eb-4e8c-9cd6-1e8c2ee43fdc">1,028,000</ix:nonFraction> recorded as an increase to a non-current deferred tax liability.  The amount of gross interest and penalties included in these balances was $<ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTczMg_b152a395-c995-4134-98c1-6ff4153a714c">1,301,000</ix:nonFraction>.  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.</span></div></ix:continuation><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"><ix:continuation id="icb39b815d4c145e184187cc23779965a">The Company has defined its major tax jurisdictions as the United States, Ireland, and China, and within the United States, Massachusetts.  Within the United States, the tax years <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="cgnx:TaxyearsopentoexaminationbyInternalRevenueService" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYxNg_bea52ecd-164f-4cf7-911d-339e0486bc6b">2016 through 2019</ix:nonNumeric> remain open to examination by the Internal Revenue Service ("IRS") and various state tax authorities.  The tax years <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="cgnx:IncomeTaxExaminationYearsUnderExaminationOtherEntities" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYzMw_c4f1f462-befa-4621-b0c2-639dbcbbb611">2015 through 2019</ix:nonNumeric> remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. The Company has recently been notified that it is under audit by the IRS for the tax year 2017. Management believes the Company is adequately reserved for this audit.</ix:continuation> </span></div><div id="iec310d5d14154791acae03eee3bb73e6_91"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 15: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:EarningsPerShareTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfNTcy_18561928-e67f-4655-a44e-af7423379091" continuedAt="ie1ec3afeb32b42d1aa991d128ab3e5ff" escape="true">Weighted-Average Shares</ix:nonNumeric></span></div><ix:continuation id="ie1ec3afeb32b42d1aa991d128ab3e5ff"><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfNTYx_dfe60fe6-c275-4840-ae65-4c90db55c0d0" escape="true"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:37.912%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:12.619%;"></td><td style="width:1.0%;"></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.181%;"></td><td style="width:1.0%;"></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.619%;"></td><td style="width:1.0%;"></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.479%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi0xLTEtMS0w_95444f9d-3443-4be0-be49-24c34806cd4b">172,283</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi0zLTEtMS0w_bc8fc8f8-3389-4bb5-94ea-52bba8c9f15c">171,318</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi01LTEtMS0w_58928abe-15af-446c-84d4-490e471976e3">172,345</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi03LTEtMS0w_efa67fe4-791b-470b-89f3-61eabf70f285">171,209</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Effect of dilutive equity awards</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy0xLTEtMS0w_d3785f80-2294-40da-aaa8-3c1e506462db">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy0zLTEtMS0w_6d8ecfa2-69da-4f95-8fcd-771052565fd1">4,130</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy01LTEtMS0w_253fdc93-e8d9-4850-a82e-fd8ac0e98bd3">3,154</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy03LTEtMS0w_4d732214-96e6-49ce-ad8c-0c628f762741">4,319</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC0xLTEtMS0w_ffb6bd6f-f19c-45b3-bdd7-23ebc9e0ceab">172,283</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC0zLTEtMS0w_b85424a5-ce93-4ce0-9530-42b3c7662259">175,448</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC01LTEtMS0w_0b10200f-b86f-438a-b23c-ef00531c93de">175,499</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="shares" contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC03LTEtMS0w_a5d77130-2f39-469b-94b0-79397af04b54">175,528</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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></ix:nonNumeric><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="i07bda74078784d8590fefad2ccda6876_D20200330-20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTMz_ebcb3728-f9d3-40f0-95c7-ade2d10e4e19">5,801,000</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="id7827367498f437bbfb70a8de8fd475d_D20200101-20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTQw_edf866fe-d5a5-4b90-99eb-8c7019b7d5ce">6,328,000</ix:nonFraction> shares of common stock, on a weighted-average basis, were outstanding during the three-month and six-month periods ended June&#160;28, 2020, respectively, and <ix:nonFraction unitRef="shares" contextRef="i1fb5903360cf4323afe3f1b01cd8f7a1_D20190401-20190630" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc3NQ_4148e255-ac65-41bc-bb00-fba3c2c5b544">6,113,000</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="i663c8efc644c4d02835ccb0ff0733027_D20190101-20190630" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc4Nw_c8b8cc2c-e01f-4fa2-9757-6e63e291ee3b">5,503,000</ix:nonFraction> for the same periods in 2019, 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="i3ffc82f09f5545fa97686d1d3ccb7cd1_D20200330-20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc1OA_7f6b538c-99b0-45a6-8f7d-32729f3af938">27,000</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="ic32e6778efab4c1baa684793e82b924d_D20200101-20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc2Ng_ca1f1c19-8f69-40d6-84eb-28528a4d44e1">14,000</ix:nonFraction> shares of common stock, on a weighted-average basis, were outstanding during the three-month and six-month periods ended June&#160;28, 2020. Additionally, because the Company recorded a cumulative net loss during the three-month period ended June 28, 2020, potential common stock equivalents of <ix:nonFraction unitRef="shares" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTA5OTUxMTYyOTUzOA_9c4c777c-8f05-4c68-b07e-61cbe8aaee0d">3,120,000</ix:nonFraction> were not included in the calculation of diluted net loss per share for this period. There were no anti-dilutive restricted stock units outstanding, on a weighted-average basis, during the three-month and six-month periods ended June 30, 2019, respectively.</span></div></ix:continuation><div style="position:relative;width:100%;height:45pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">26</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_94"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 16: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDQ_7ddb09e0-2aa0-45d7-8df3-8775ec8d17f0" continuedAt="i8f493782a4994a998f03de1966671d9b" escape="true">Restructuring Charges</ix:nonNumeric></span></div><div><span><br/></span></div><ix:continuation id="i8f493782a4994a998f03de1966671d9b"><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">On May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The restructuring plan included a global workforce reduction of approximately <ix:nonFraction unitRef="number" contextRef="ic537b61975ca4beba7154e52aeb4ef46_I20200526" decimals="2" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDg_62b69820-a5a6-486f-b1c1-a4eee1c43cb3">8</ix:nonFraction>% and office closures. </span></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company estimates the total restructuring charges from these actions to be approximately $<ix:nonFraction unitRef="usd" contextRef="ic537b61975ca4beba7154e52aeb4ef46_I20200526" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostExpectedCost1" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTA5OTUxMTYzMDQ2NQ_4e8b81f5-9144-44d9-8f9f-cc84e24272d5">16,445,000</ix:nonFraction>, of which $<ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTA5OTUxMTYzMDQ4MA_7d22e9c6-189c-45b4-bb18-04ac9604275c">14,798,000</ix:nonFraction> has been recorded in the three-month period ended June 28, 2020 and included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations. The remaining charges are expected to be recognized during the second half of 2020. <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDU_2281199f-c484-43cb-bce2-ccccd6def9eb" continuedAt="i567ed66d3b6e4db09d8ef6654339601a" escape="true">The following table summarizes the restructuring charges (in thousands):</ix:nonNumeric></span></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;margin-bottom:6pt;"><ix:continuation id="i567ed66d3b6e4db09d8ef6654339601a"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:57.883%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:17.767%;"></td><td style="width:1.0%;"></td><td style="width:0.1%;"></td><td style="width:0.381%;"></td><td style="width:0.1%;"></td><td style="width:1.0%;"></td><td style="width:17.769%;"></td><td style="width:1.0%;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total Amount Expected to be Incurred</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Incurred in the Three-months Ended June 28, 2020</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">One-time termination benefits</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ife0e92d165ae475ebc3a85b24bcf6df2_I20200526" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostExpectedCost1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMS0xLTEtMS03ODQ3_62f5faba-3be4-43b5-bd32-ad9b278e85ed">11,387</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i0dee04a40007403cade82e8888fd9e9f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMS0zLTEtMS03ODM5_1493c44a-8bfd-4d08-a47f-fd01bb7e56dd">10,386</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contract termination costs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i0211d27ce6ab4f02aa4d36e19e27db7e_I20200526" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostExpectedCost1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMi0xLTEtMS03ODQ5_ef8fd292-97a7-49c7-a5ca-2c3dba280b89">3,995</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i91ce5770a5e241e5b402ace756c1ae96_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMi0zLTEtMS03ODQx_a355ff9c-d839-4010-86f5-83fcaa999c87">3,995</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other associated costs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="iaa4635907fac42d9b5c93270fff00f32_I20200526" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostExpectedCost1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMy0xLTEtMS03ODUx_96b61f90-c327-4dff-8a73-6722b01e4289">1,063</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i453326dcf5964e45afcc4c90e9a8a856_D20200330-20200628" decimals="-3" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMy0zLTEtMS03ODQz_e2fdc7e9-25b5-4cd3-be1f-0f1f0f3fd825">417</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ic537b61975ca4beba7154e52aeb4ef46_I20200526" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringAndRelatedCostExpectedCost1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfNC0xLTEtMS03ODUz_a9d18f01-d85d-4ea6-9de7-3e413774a4b6">16,445</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfNC0zLTEtMS03ODQ1_ea60ea15-740c-4f0e-8ecf-8ddc5ff16c02">14,798</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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></ix:continuation></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">One-time termination benefits include severance, health insurance, and outplacement services for <ix:nonFraction unitRef="employees" contextRef="i94185f4fe5124c19b3c0b7f61fd3d802_D20200526-20200526" decimals="INF" name="us-gaap:RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MTI_207b0faf-d896-4343-aa16-ac51e39f9091">181</ix:nonFraction> employees who were either terminated or have been notified that they will be terminated at a future date. For employees not required to render service beyond a minimum retention period, the one-time termination benefits were recognized in the three-month period ended June 28, 2020. Otherwise, these benefits, including retention bonuses for selected employees, are being recognized over the service period, which is not expected to exceed the fourth quarter of 2020.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Contract termination costs include remaining lease liability obligations and operating lease asset impairments for offices closed prior to the end of the contractual lease term. These costs also include the write-off of leasehold improvements and other equipment related to these abandoned offices that had no alternative use. These contract termination costs were recognized in the three-month period ended June 28, 2020 when the Company ceased using the property for economic benefit. Other associated costs primarily include legal fees related to the employee termination actions, which are being recognized when the services are performed. </span></div><ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDY_01f2f0e3-0066-4f83-a192-25de8eb672e0" escape="true"><div style="text-align:justify;margin-top:9pt;margin-bottom:16pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:6pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:37.327%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:13.204%;"></td><td style="width:1.0%;"></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:12.181%;"></td><td style="width:1.0%;"></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:11.888%;"></td><td style="width:1.0%;"></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.648%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">One-time Termination Benefits</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contract Termination Costs</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other Associated Costs</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="idaab6b4b384b46cf923fb1e000fc42c1_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS0xLTEtMS03ODU1_fe3831e7-be2e-4197-968f-771659b8cb5e">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i66e2905874d54c2caf75916e1745020c_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS0zLTEtMS03ODU1_272802e9-379c-4d7c-82c1-0ae159d2562f">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i087c7a0293b843fa939b25a159478a61_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS01LTEtMS03ODU1_fce959d3-977c-45c2-8560-41827dd42ddb">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS03LTEtMS03ODU1_fc210a27-768d-4ff5-86e0-e467f7f04b12">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Restructuring charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi0xLTEtMS03ODU3_42e5ce95-1d79-49be-a5ca-5409c0339fff">10,386</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi0zLTEtMS03ODU3_3d08aa02-7584-4d27-83b6-ee4eba8f1039">3,995</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628" decimals="-3" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi01LTEtMS03ODU3_c45823d9-92f6-4171-bead-73aced51f795">417</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi03LTEtMS03ODU3_5733282d-c889-4cb5-90ed-16ad0da3f5d9">14,798</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash payments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy0xLTEtMS03ODU3_60efad7c-1731-442e-82ea-d91356da08f3">4,654</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy0zLTEtMS03ODU3_1be2b34d-6866-44be-ac61-b9b59d9a92f3">26</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"></span></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy01LTEtMS03ODU3_f67c842d-6bad-4d38-832c-af1a8cf7515c">9</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy03LTEtMS03ODU3_18619de7-cc75-40f5-bd21-8a1d01b2a1c1">4,689</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-cash restructuring charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringReserveSettledWithoutCash2" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC0xLTEtMS03ODU3_bde32fe6-1d64-493e-8072-b785f5ea7e61">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveSettledWithoutCash2" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC0zLTEtMS03ODU3_c9b9d0db-61ca-4dc3-8ed8-a9fbdd5e878c">3,145</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628" decimals="-3" format="ixt:zerodash" name="us-gaap:RestructuringReserveSettledWithoutCash2" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC01LTEtMS03ODU3_ed9d48b4-a4eb-46b2-a864-d7128e17cc54">&#8212;</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(<ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserveSettledWithoutCash2" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC03LTEtMS03ODU3_b990bd96-8737-4f20-893e-2a2555bacc86">3,145</ix:nonFraction>)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS0xLTEtMS03ODU3_196c9205-4772-47d2-a38f-089a060b5831">60</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS0zLTEtMS03ODU3_f079f033-c648-4d64-839f-55478b5f5c93">5</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS01LTEtMS03ODU3_0da64499-9d68-4e28-83e4-d3550c56faaf">7</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS03LTEtMS03ODU3_a9948aa7-1cac-4229-ab66-97d994c10483">72</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i00752329dd5e416782e4cef86994ba03_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi0xLTEtMS03ODYy_18f3ecd9-c378-41a0-90bc-3aa8d9e44119">5,792</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="ibb57e579a32649ad80b43341a1de4d0b_I20200628" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi0zLTEtMS03ODYy_1edb9212-4f98-488d-8390-b15d9b3e3f49">829</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="i89b581a88c95490187c013c276398814_I20200628" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi01LTEtMS03ODYy_9fd5fa07-6b18-4a4f-b2eb-2dc18f542fdf">415</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><ix:nonFraction unitRef="usd" contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi03LTEtMS03ODYy_42f47889-066e-43ef-aa2f-5a53a273bf9b">7,036</ix:nonFraction>&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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></ix:nonNumeric></ix:continuation><div><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">27</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_97"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-top:1pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED) </span></div></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">NOTE 17: <ix:nonNumeric contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628" name="us-gaap:SubsequentEventsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85Ny9mcmFnOjc1NzZkMjNkMGNiYzRjODJiODFiMDAyYzk0OTUzOThlL3RleHRyZWdpb246NzU3NmQyM2QwY2JjNGM4MmI4MWIwMDJjOTQ5NTM5OGVfMTI5Ng_b88b3550-83f6-422b-a535-9b1c6ba455ba" continuedAt="ibfc3a0b18a544454af32879df9d9a0bb" escape="true">Subsequent Events</ix:nonNumeric></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"><ix:continuation id="ibfc3a0b18a544454af32879df9d9a0bb">On July 29, 2020, the Company&#8217;s Board of Directors declared a cash dividend of $<ix:nonFraction unitRef="usd" contextRef="id52911d2174e4651aeb38a8ca2dabb70_D20200729-20200729" decimals="INF" name="us-gaap:Dividends" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85Ny9mcmFnOjc1NzZkMjNkMGNiYzRjODJiODFiMDAyYzk0OTUzOThlL3RleHRyZWdpb246NzU3NmQyM2QwY2JjNGM4MmI4MWIwMDJjOTQ5NTM5OGVfMTEy_be174529-062b-4dd8-aa84-5a783950f15b">0.055</ix:nonFraction> per share.  The dividend is payable on August 28, 2020 to all shareholders of record as of the close of business on August 14, 2020.</ix:continuation> </span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">28</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_100"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;2: MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></div><div><span><br/></span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Forward-Looking Statements</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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&#160;27A of the Securities Act of 1933, as amended, and Section&#160;21E of the Securities Exchange Act of 1934, as amended. 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.  These statements are based upon 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 trends, future financial performance, the expected impact of the COVID-19 pandemic on our business and results of operations, customer order rates and timing of related revenue, future product mix, restructuring and other cost savings initiatives, research and development activities, investments, liquidity, strategic plans, 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)&#160;the impact, duration and severity of the COVID-19 pandemic; (2) current and future conditions in the global economy, including the impact of the COVID-19 pandemic and the imposition of tariffs or export controls; (3)&#160;the loss of, or curtailment of purchases by, a large customer; (4)&#160;the reliance on revenue from the consumer electronics or automotive industries; (5)&#160;the inability to penetrate the logistics industry and other new markets; (6)&#160;the inability to achieve significant international revenue; (7)&#160;fluctuations in foreign currency exchange rates and the use of derivative instruments; (8)&#160;information security breaches or business system disruptions; (9)&#160;the inability to attract and retain skilled employees; (10) the failure to effectively manage our growth; (11)&#160;the reliance upon key suppliers to manufacture and deliver critical components for our products; (12)&#160;the failure to effectively manage product transitions or accurately forecast customer demand; (13)&#160;the inability to design and manufacture high-quality products; (14)&#160;the technological obsolescence of current products and the inability to develop new products; (15)&#160;the failure to properly manage the distribution of products and services; (16)&#160;the inability to protect our proprietary technology and intellectual property; (17)&#160;our involvement in time-consuming and costly litigation; (18)&#160;the impact of competitive pressures; (19)&#160;the challenges in integrating and achieving expected results from acquired businesses, including the recent acquisition of Sualab; (20)&#160;potential impairment charges with respect to our investments or for acquired intangible assets or goodwill; (21)&#160;exposure to additional tax liabilities; and (22) potential disruptions to our business due to restructuring activities and the failure of such activities to generate the anticipated cost savings.  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&#160;1A of the Company's Annual Report on Form 10-K for the fiscal year ended December 31, 2019, as updated by Part II - Item 1A of this Quarterly Report on Form 10-Q.  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><span><br/></span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Executive Overview</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Cognex Corporation is a leading worldwide provider of machine vision products that capture and analyze visual information in order to automate manufacturing and distribution tasks where vision is required.  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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Cognex machine vision is used to automate manufacturing and distribution processes in a variety of industries, where the technology is widely recognized as an important component of automated production and quality assurance. Virtually every manufacturer can achieve better quality and manufacturing efficiency by using machine vision, and therefore, Cognex products are used by a broad base of customers across a variety of industries, including consumer electronics, automotive, consumer products, food and beverage, pharmaceuticals, and medical devices.  Cognex products are also used to automate distribution processes in the logistics industry, including for applications in retail distribution and ecommerce to scan, track, and sort goods through distribution centers. </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Revenue for the second quarter of 2020 totaled $169,097,000, representing a decrease of 15% from the second quarter of 2019.  Our business has been adversely and materially impacted by deteriorating global economic conditions resulting from the COVID-19 pandemic.  This impact was most notable in the automotive industry, our largest market, for which revenue continued to decline from the first quarter of 2020 and was significantly lower than </span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;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><br/></span></div></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">the second quarter of 2019.  Gross margin was 70% for the second quarter of 2020 compared to 74% for the second quarter of 2019 due to higher provisions for excess and obsolete inventories as a result of the deteriorating business conditions.  </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Operating expenses increased by 30% from the second quarter of 2019. In order to more closely align our cost structure to the lower level of business, we implemented a variety of cost-cutting measures in the second quarter, including a workforce reduction and office closures, and recorded restructuring charges of $14,798,000 from these actions.  The significant decline in business levels also triggered a review of long-lived assets that resulted in intangible asset impairment charges of $19,571,000.  Excluding these charges, operating expenses decreased by 6% from the second quarter of 2019 due primarily to lower travel expenses resulting from COVID-19 restrictions.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As a result of the lower revenue level and charges related to excess inventories, restructuring actions, and intangible asset impairments, we reported an operating loss of 4% of revenue in the second quarter of 2020 compared to an operating profit of 26% of revenue in the second quarter of 2019.  We reported a net loss of 1% of revenue in the second quarter of 2020, or $0.01 per share, compared to a net profit of 24% of revenue in the second quarter of 2019, or $0.28 per share.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Results of Operations</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Revenue</span></div><div style="text-align:justify;margin-top:5pt;margin-bottom:8pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Revenue decreased by $29,950,000, or 15%, for the three-month period and decreased by $36,199,000, or 10%, for the six-month period.  Changes in foreign currency exchange rates did not have a material impact on revenue. </span></div><div style="text-align:justify;margin-top:5pt;margin-bottom:8pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Deteriorating global economic conditions resulting from the COVID-19 pandemic, which had a modest impact on our business in the first quarter of 2020, had a more significant impact in the second quarter, as we noted lower demand for our products in certain industries, additional disruptions to our supply chain, longer customer delivery times, and further shutdowns of customer facilities.  This impact was most notable in the automotive industry, for which revenue declined from the first quarter of 2020 and was significantly lower than the prior year for both the three-month and six-month periods.  Revenue in the logistics industry increased from the first quarter of 2020 and was higher than the prior year for both the three-month and six-month periods driven by higher demand from ecommerce customers.  This was partially offset, however, by lower demand from retail distribution customers and delays in revenue recognition related to customer facility access for on-site installations caused by COVID-19 conditions.  The timing of revenue recognition also impacted revenue in the electronics industry, which was lower than the prior year for the three-month period and relatively flat for the six-month period.</span></div><div style="text-align:justify;margin-top:5pt;margin-bottom:8pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">From a geographic perspective, revenue from customers based in the Americas decreased by 11% for the three-month period and 9% for the six-month period with the most significant decrease coming from the automotive industry.  Revenue from customers based in Europe decreased by 40% for the three-month period and 29% for the six-month period also due to lower sales in the automotive industry, as well as in the electronics industry.  Revenue from customers based in Greater China decreased by 11% for the three-month period due to lower sales from the automotive industry and were relatively flat for the six-month period, as lower revenue in the automotive industry was offset by higher revenue in the electronics industry.  Revenue from other countries in Asia increased by 23% for the three-month period and 22% for the six-month period due to higher sales from the electronics industry.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As of the date of this report, we expect revenue for the third quarter of 2020 to be higher than both the second quarter of 2020 and the third quarter of 2019 due to anticipated higher revenue in the electronics industry.  We expect COVID-19 to continue to adversely impact our revenue in the third quarter of 2020 as compared to the prior year outside of electronics, logistics ecommerce, and a few smaller industries, with the most notable adverse impact expected in the automotive industry.  It is difficult for us to quantify this impact due to many factors beyond our control and knowledge, including changing governmental regulations and the scope and duration of social distancing and commerce restrictions, including access to customer facilities for on-site installations.</span></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;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><br/></span></div></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Gross margin as a percentage of revenue was 70% and 73% for the three-month and six-month periods in 2020, respectively, compared to 74% for both periods in 2019. The decrease in the gross margin percentage was due to higher provisions for excess and obsolete inventories, which totaled $7,718,000 and $8,783,000 for the three-month and six-month periods ended June 28, 2020, respectively, compared to $933,000 and $1,713,000 for the same periods in 2019. The higher level of provisions recorded in the three-month period ended June 28, 2020 was due to lower projected sales of excess inventories as a result of the deteriorating global economic conditions from the COVID-19 pandemic. Gross margin as a percentage of revenue would be relatively consistent for all periods presented excluding the provisions for excess and obsolete inventories.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As of the date of this report, we expect gross margin as a percentage of revenue for the third quarter of 2020 to be similar to the percentage reported in the first half of 2019.  Although we expect provisions for excess and obsolete inventory to be lower than the second quarter of 2020, we expect a greater percentage of revenue from application-specific customer solutions, which have relatively lower margins.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Research, development, and engineering (RD&amp;E) expenses increased by $2,318,000, or 8%, for the three-month period and $8,022,000, or 14%, for the six-month period as detailed in the table below (in thousands).</span></div><div style="text-align:justify;margin-top:10pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:68.029%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:12.619%;"></td><td style="width:1.0%;"></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.622%;"></td><td style="width:1.0%;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-month period</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-month period</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">RD&amp;E expenses in 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">28,079&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">58,321&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Personnel-related costs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,405&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,033&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Acquisition deferred compensation</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,310&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,620&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Incentive compensation</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,601&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,549&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Travel expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(671)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(771)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Stock expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,130)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(172)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(197)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">763&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">RD&amp;E expenses in 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">30,397&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">66,343&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr></table></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">RD&amp;E expenses increased due to higher personnel-related costs primarily from headcount additions related to a team of deep learning engineers from the Company's acquisition of Sualab in the fourth quarter of 2019.  The consideration for this acquisition included deferred payments that are being recorded as compensation expense over four years from the closing date, which accounted for an additional increase in RD&amp;E expense of $1,310,000 for the three-month period and $2,620,000 for the six-month period.  In addition, the Company recorded higher incentive compensation accruals for annual plans with relevant performance goals for 2020.  We will continue to monitor the achievement of these performance goals for the remainder of the year due to the impact of COVID-19 on our business, among other factors, which may result in adjustments to our incentive compensation accruals in future quarters.  </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">These increases were partially offset by lower travel expenses resulting from COVID-19 restrictions.  We expect these restrictions to continue in the third quarter of 2020.  The Company also recorded lower stock expense as a result of a lower total value of awards granted in 2020 as compared to 2019, as well as the impact on the timing of stock expense recognition from a shift in our compensation practices toward the granting of restricted stock units with cliff vesting.  In addition, credits were recorded to stock expense in the second quarter of 2020 for awards cancelled as a result of a workforce reduction.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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 were 18% and 20% for the three-month and six-month periods in 2020, respectively, compared to 14% and 16% for the same periods in 2019.  We believe that a continued commitment to RD&amp;E activities is essential in order 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.  Therefore, we expect to continue to make significant RD&amp;E investments in the future, and currently intend to continue our product development plans during periods of lower revenue levels.</span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;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><br/></span></div></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Selling, general, and administrative (SG&amp;A) expenses decreased by $8,092,000, or 12%, for the three-month period and $5,765,000, or 4%, for the six-month period as detailed in the table below (in thousands). </span></div><div style="text-align:justify;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"></td><td style="width:68.029%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:12.473%;"></td><td style="width:1.0%;"></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:12.475%;"></td><td style="width:1.0%;"></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-month period</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-month period</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">SG&amp;A expenses in 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">68,245&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">135,056&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Travel expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4,843)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(6,588)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,074)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,857)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Marketing programs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(949)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,231)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contract labor</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(636)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,126)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Stock expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,810)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(25)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Incentive compensation</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,654&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,783&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,434)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,279&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">SG&amp;A expenses in 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">60,153&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">129,291&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"></td><td colspan="3" style="display:none;"></td></tr></table></div><div style="text-align:justify;margin-top:5pt;"><span><br/></span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">SG&amp;A expenses decreased due to lower travel expenses resulting from COVID-19 restrictions.  We expect these restrictions to continue in the third quarter of 2020.  Foreign currency exchange rate changes also resulted in a lower level of SG&amp;A expenses in 2020, as costs denominated in foreign currencies were translated to U.S. Dollars at a lower rate due to a relatively stronger U.S. Dollar.  In addition, the Company reduced spending on marketing programs and contract labor in response to the lower business levels.  The Company also recorded lower stock expense as a result of a lower total value of awards granted in 2020 as compared to 2019, as well as the impact on the timing of stock expense recognition from a shift in our compensation practices toward the granting of restricted stock units with cliff vesting.  In addition, credits were recorded to stock expense in the second quarter of 2020 for awards cancelled as a result of a workforce reduction.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">These decreases were partially offset by higher incentive compensation accruals for annual plans with relevant performance goals for 2020.  We will continue to monitor the achievement of these performance goals for the remainder of the year due to the impact of COVID-19 on our business, among other factors, which may result in adjustments to our incentive compensation accruals in future quarters.  </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">On May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The restructuring plan included a global workforce reduction of approximately 8% and office closures.  The Company estimates the total restructuring charges from these actions to be approximately $16,445,000, of which $14,798,000 has been recorded in the second quarter.  The remaining charges of approximately $1,647,000 are expected to be recognized during the second half of 2020, primarily in the third quarter.  </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The actions described above, together with actions already taken to reduce the Company's overall costs, were designed to generate an aggregate annualized cost savings of approximately $25,000,000 versus the Company's original planned cost structure. Management does not believe these cost-saving measures will impair the Company's ability to conduct its key business functions.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Intangible Asset Impairment Charges</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The significant decline in business levels triggered a review of long-lived assets for potential impairment in the second quarter of 2020.  This review resulted in intangible asset impairment charges totaling $19,571,000 recorded in the second quarter, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab as a result of the deteriorating global economic conditions from the COVID-19 pandemic.</span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">32</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded foreign currency gains of $336,000 and foreign currency losses of $2,667,000 for the three-month and six-month periods in 2020, respectively, compared to foreign currency gains of $140,000 and foreign currency losses of $108,000 for the same periods in 2019.  Foreign currency gains and losses result primarily from the revaluation and settlement of accounts receivable, accounts payable, and intercompany balances that are reported in one currency and collected in another.  The higher level of foreign currency losses for the six-month period in 2020 was primarily related to the revaluation of an intercompany balance that was created by the migration of acquired intellectual property from one subsidiary to another in the fourth quarter of 2019.  This intercompany balance is expected to be settled in the third quarter of 2020.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Investment income decreased by $1,932,000, or 37%, for the three-month period and $1,608,000, or 16%, for the six-month period.  The decrease was due to lower yields on the Company's portfolio of debt securities and a lower average invested balance. </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded other income of $203,000 and $20,000 for the three-month and six-month periods in 2020, respectively, compared to other expense of $144,000 and other income of $783,000 for the same periods in 2019.  Other income (expense) includes fair value adjustments of contingent consideration liabilities arising from business acquisitions.  The Company recorded a $1,060,000 decrease in the fair value of its GVi contingent consideration liability in the first quarter of 2019, resulting from a lower level of revenue in the Americas&#8217; automotive industry. </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company&#8217;s effective tax rate was a benefit of 51% of pre-tax loss and an expense of 7% of pre-tax income for the three-month and six-month periods in 2020, respectively, compared to an expense of 14% and 12% of pre-tax income for the same periods in 2019.</span></div><div style="text-align:justify;margin-top:5pt;margin-bottom:8pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The effective tax rate included a decrease in tax expense of $4,413,000 and $6,093,000 for the three-month and six-month periods in 2020, respectively, and $1,248,000 and $3,978,000 for the same periods in 2019, primarily from the excess tax benefit arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock exercises.  The Company cannot predict the level of stock option exercises by employees in future periods. </span></div><div style="text-align:justify;margin-top:5pt;margin-bottom:8pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Other discrete tax items included an increase in tax expense of $3,267,000 and $3,509,000 for the three-month and six-month periods in 2020, respectively, primarily from the final true-up of the prior year's tax accrual upon filing the related tax return.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Excluding the impact of these discrete items, the Company&#8217;s effective tax rate was a benefit of 1% of pre-tax loss and an expense of 19% of pre-tax income for the three-month and six-month periods in 2020, respectively, compared to an expense of 17% and 16% of pre-tax income for the same periods in 2019.  The increase in the effective tax rate, excluding the impact of discrete items, for the six-month period from 16% in 2019 to 19% in 2020 was due to more of the Company's profits being earned and taxed in higher tax jurisdictions. This adjustment to the effective tax rate resulted in an 18 percentage-point impact on the effective tax rate for the three-month period ended June 28, 2020.</span></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Liquidity and Capital Resources</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 has resulted in an accumulated cash and investment balance of $896,192,000 as of June 28, 2020.  The Company has established guidelines relative to credit ratings, diversification, and maturities of its investments that maintain liquidity.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company&#8217;s cash requirements for the six-month period ended June 28, 2020 were primarily met with positive cash flows from operations.  Cash requirements consisted of operating activities, the repurchase of common stock, the payment of dividends, and capital expenditures.   Capital expenditures for the six-month period ended June 28, 2020 totaled $6,985,000 and consisted primarily of computer hardware and software, manufacturing test equipment related to new product introductions, and improvements made to the Company's headquarters building in Natick, Massachusetts and various leased facilities.  The Company intends to continue to invest in capital projects in the second half of 2020 despite the current lower business levels, particularly related to its management information systems, which we believe are important to support our longer-term growth objectives.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Our business has been adversely and materially impacted by deteriorating global economic conditions resulting from the COVID-19 pandemic.  In order to more closely align our cost structure to the lower level of business, we implemented a variety of cost-cutting measures in the second quarter of 2020, including a workforce reduction and </span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">33</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">office closures.  The Company estimates the total restructuring charges from these actions to be approximately $16,445,000, of which $3,145,000 represents non-cash charges, $4,689,000 was paid in the second quarter of 2020, and the remainder is expected to be paid out in the second half of 2020, primarily in the third quarter. </span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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.  As of June 28, 2020, the Company repurchased 2,816,000 shares at a cost of $121,348,000 under this program, including 1,215,000 shares at a cost of $51,036,000 in the first quarter of 2020, leaving a remaining balance of $78,652,000.  No shares were repurchased during the second quarter of 2020.  On March 12, 2020 the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock.  Purchases under this March 2020 program will commence upon completion of the October 2018 program.   The Company may repurchase shares under these programs in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee equity 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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.050 per share in the first, second, and third quarters of 2019.  The dividend was increased to $0.055 per share in the fourth quarter of 2019, the first quarter of 2020, and the second quarter of 2020.  Total dividends paid amounted to $18,972,000 for the six-month period ended June 28, 2020.  Future dividends will be declared at the discretion of the Company&#8217;s Board of Directors and will depend upon such factors as the Board deems relevant including, among other things, the Company&#8217;s ability to generate positive cash flows from operations.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company believes that its 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.  As of June 28, 2020, the Company had $896,192,000 in cash and investments.  In addition, the Company has no long-term debt and does not anticipate needing debt financing in the near future.  We believe that our strong cash position has put us in a relatively good position to maintain our liquidity during downturns in our business related to COVID-19 and with respect to our longer-term liquidity needs.</span></div><div style="text-align:justify;"><span><br/></span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">New Pronouncements</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Refer to Part I - Note 2 within this Form 10-Q, for a full description of recently issued accounting pronouncements including the expected dates of adoption and the expected impact on the financial position and results of operations of the Company. </span></div><div id="iec310d5d14154791acae03eee3bb73e6_103"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;3: QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">There have been no material changes to the Company&#8217;s exposures to market risk since December&#160;31, 2019.</span></div><div id="iec310d5d14154791acae03eee3bb73e6_106"></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;4: CONTROLS AND PROCEDURES</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 Securities Exchange Act of 1934, 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, the Chief Executive Officer and Chief Financial Officer concluded that such disclosure controls and procedures were effective as of that date.  From time to time, the Company reviews its disclosure controls and procedures, 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">There was no change in the Company's internal control over financial reporting that occurred during the quarter ended June&#160;28, 2020 that has materially affected, or is reasonably likely to materially affect, the Company's internal control over financial reporting.  We have considered the impact of COVID-19 on our internal controls over financial reporting. &#160;Personnel constraints related to working from home have made our ability to execute certain controls more challenging; however, we have enhanced existing monitoring controls in an effort to ensure we continue to have effective internal controls during this time.</span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">34</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_109"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">PART II: OTHER INFORMATION</span></div><div id="iec310d5d14154791acae03eee3bb73e6_112"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;1. LEGAL PROCEEDINGS</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="iec310d5d14154791acae03eee3bb73e6_115"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">For a complete list of factors that could affect the Company&#8217;s business, results of operations, and financial condition, see the risk factors discussion provided in Part I&#8212;Item&#160;1A of the Company&#8217;s Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2019.  The following information updates, and should be read in conjunction with, Part I - Item 1A of the Company's Annual Report on Form 10-K for the fiscal year ended December 31, 2019.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Our business has been, and is expected to continue to be, adversely affected by the recent COVID-19 pandemic.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The COVID-19 (also referred to as &#8220;coronavirus&#8221;) outbreak, which was first reported in China in the beginning of 2020, developed into a global pandemic in March 2020.  The COVID-19 outbreak had a modest adverse impact on our business in the first quarter of 2020, primarily near the end of the quarter.  This impact expanded and accelerated into the second quarter, as we noted lower demand for our products in certain industries, additional disruptions to our supply chain, longer customer delivery times, higher delivery costs, and further shutdowns of customer facilities.  </span></div><div style="text-align:justify;margin-top:6pt;margin-bottom:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">We face several risks and uncertainties related to the impact of COVID-19 on our business.  It is difficult for us to quantify the duration and severity of this impact due to many factors beyond our control and knowledge, including changing governmental regulations and the scope and duration of social distancing and commercial restrictions.  These risks and uncertainties include, among others:</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">our customers may further delay or cancel orders for our products,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">additional customer facilities may be shut down for extended periods of time</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">,</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"> resulting in our inability to deliver products, perform on-site services, or make on-site sales visits,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);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,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);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="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">our vendors may be unable to fulfill their delivery obligations to us within acceptable lead times for extended periods of time, which may force us to seek alternative sources of supply at higher costs,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">our contract manufacturers may experience interruptions that result in delivery delays and higher costs for our products,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">we may experience manufacturing delays and higher costs in the event of a supply disruption from a single-source vendor,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">we may experience extended customer delivery times and higher delivery costs,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">our distribution centers in Natick, Massachusetts and Cork, Ireland may be forced to operate with a significantly reduced workforce or be forced to shut down altogether due to government regulations or health concerns,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">our online sales and marketing efforts may be less effective than face-to-face activities, resulting in fewer customer acquisitions and lower sales from new products, </span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">challenges involved in working from home may delay certain of our new product introductions</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);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 committed to purchase,</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);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="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt;">our investment portfolio of debt securities may be exposed to material credit losses, and</span></div><div style="text-indent:-18pt;padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#8226;</span><span style="background-color:rgb(255,255,255, 0.0);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 attractive form of retention for our employees.</span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">35</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">These risks and uncertainties could have a material adverse effect on the continuity of our business and our results of operations and financial condition.  The impact of COVID-19 also may exacerbate other risks discussed in Part I - Item 1A of the Company's Annual Report on Form 10-K for the fiscal year ended December 31, 2019, any of which could have a material adverse effect on our business, results of operations and financial condition.  This situation is continuously changing and additional impacts on our business may arise of which we are not currently aware.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Our restructuring activities may result in disruption to our business and may not generate the anticipated cost savings.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">In May 2020, our Board of Directors approved a restructuring plan intended to reduce our operating costs, optimize our business model, and address the impact of the COVID-19 pandemic. These actions, which include workforce reductions and office closures, were designed to generate an aggregate annualized cost savings of approximately $25,000,000 versus our original planned cost structure.  Our ability to achieve the anticipated cost savings and other benefits from these actions within the expected timeframe is subject to many estimates and assumptions. These estimates and assumptions are subject to significant economic, competitive and other uncertainties, many of which are beyond our control. If these estimates and assumptions are incorrect, if we experience delays, or if other unforeseen events occur, our business and results of operations could be adversely affected.  In addition, although we currently expect to continue to make investments in strategic areas, these restructuring actions may nevertheless negatively impact programs we believe are important to the long-term success of our company, such as the ability to accelerate time to market for new products. In addition, our ability to provide a high level of service to our customers may be negatively impacted by these actions, particularly in regions where we have downsized our operations.</span></div><div id="iec310d5d14154791acae03eee3bb73e6_118"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;2. UNREGISTERED SALES OF EQUITY SECURITIES AND USE OF PROCEEDS</span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 the three-month period ended June&#160;28, 2020:</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.561%;"><tr><td style="width:1.0%;"></td><td style="width:36.913%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:11.069%;"></td><td style="width:1.0%;"></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:11.069%;"></td><td style="width:1.0%;"></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:16.061%;"></td><td style="width:1.0%;"></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:12.686%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total<br/>Number<br/>of Shares<br/>Purchased</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Average<br/>Price&#160;Paid<br/>per Share</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total&#160;Number&#160;of<br/>Shares<br/>Purchased as<br/>Part of Publicly<br/>Announced<br/>Plans or<br/>Programs (1)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Approximate<br/>Dollar Value<br/>of Shares that<br/>May Yet Be<br/>Purchased<br/>Under the<br/>Plans or<br/>Programs (1)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">March 30, 2020 - April 26, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">278,652,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">April 27, 2020 - May 24, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">278,652,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">May 25, 2020 - June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">278,652,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">278,652,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="padding-left:36pt;text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(1) In October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Purchases under this program commenced in October 2018. On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock.&#160; This new authorization will commence once the Company completes the October 2018 program, with repurchases subject to market conditions and other relevant factors. 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 id="iec310d5d14154791acae03eee3bb73e6_121"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;3. DEFAULTS UPON SENIOR SECURITIES</span></div><div style="text-indent:24.75pt;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">None.</span></div><div id="iec310d5d14154791acae03eee3bb73e6_124"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;4. MINE SAFETY DISCLOSURES</span></div><div style="text-indent:24.75pt;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Not applicable.</span></div><div id="iec310d5d14154791acae03eee3bb73e6_127"></div><div style="margin-top:6pt;"><span><br/></span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;5. OTHER INFORMATION</span></div><div style="text-indent:22.5pt;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">None.</span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">36</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_130"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="-sec-extract:summary;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:6pt;font-weight:400;line-height:120%;">&#160;</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">ITEM&#160;6. EXHIBITS</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:8.703%;"></td><td style="width:1.0%;"></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:86.564%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:6.75pt;"><span style="font-size:8pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;">Exhibit Number</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31.1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-right:6.75pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;-sec-extract:exhibit;text-decoration: none;" href="a6282020-10qxexhibit311.htm">Certification of Principal Executive Officer pursuant to Rule 13a-14(a)/15d-14(a) under the Securities Exchange Act of 1934*</a></span></div></td></tr><tr><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31.2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-right:6.75pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;-sec-extract:exhibit;text-decoration: none;" href="a6282020-10qxexhibit312.htm">Certification of Principal Financial Officer pursuant to Rule 13a-14(a)/15d-14(a) under the Securities Exchange Act of 1934*</a></span></div></td></tr><tr><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">32.1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-right:6.75pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;-sec-extract:exhibit;text-decoration: none;" href="a6282020-10qxexhibit321.htm">Certification of Principal Executive Officer pursuant to 18 U.S.C. 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002**</a></span></div></td></tr><tr><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">32.2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-right:6.75pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;"><a style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;-sec-extract:exhibit;text-decoration: none;" href="a6282020-10qxexhibit322.htm">Certification of Principal Financial Officer pursuant to 18 U.S.C. 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002**</a></span></div></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">101.SCH</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Inline XBRL Taxonomy Extension Schema Document*</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">101.CAL</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Inline XBRL Taxonomy Extension Calculation Linkbase Document*</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">101.LAB</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Inline XBRL Taxonomy Extension Label Linkbase Document*</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">101.PRE</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Inline XBRL Taxonomy Extension Presentation Linkbase Document*</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">101.DEF</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Inline XBRL Taxonomy Extension Definition Linkbase Document*</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">104</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cover Page Interactive Data File (formatted as Inline XBRL with applicable taxonomy extension information contained in Exhibits 101.*)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">*</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Filed herewith</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">**</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Furnished herewith</span></td></tr></table></div><div><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;-sec-extract:summary;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">37</span></div></div></div><div id="iec310d5d14154791acae03eee3bb73e6_133"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%;"><div><span><br/></span></div></div><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">SIGNATURES</span></div><div style="margin-top:12pt;"><span style="background-color:rgb(255,255,255, 0.0);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, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.</span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:4.304%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:29.231%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:2.105%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:2.838%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:51.522%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Date:</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">July 29, 2020</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="6" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">COGNEX CORPORATION</span></td><td colspan="3" style="display:none;"></td></tr><tr><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:3pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">By:</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">/s/ Robert J. Willett</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Robert J. Willett</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">President and Chief Executive Officer</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Principal Executive Officer)</span></td></tr><tr><td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="height:15pt;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">By:</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">/s/ Paul D. Todgham</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Paul D. Todgham</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Senior Vice President of Finance and Chief Financial Officer</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Principal Financial Officer)</span></td></tr></table></div><div style="text-align:center;"><span><br/></span></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;">38</span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>a6282020-10qxexhibit311.htm
<DESCRIPTION>EX-31.1
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2020 Workiva -->
<title>Document</title></head><body><div id="i20b57f107d8d466296719605ad3afde0_1"></div><div style="min-height:42.75pt;width:100%;"><div><font><br></font></div></div><div style="text-align:right;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Exhibit 31.1</font></div><div style="text-align:center;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);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:12pt;"><font style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">1&#160;I have reviewed this quarterly report on Form 10-Q of Cognex Corporation&#59;</font></div><div style="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">2&#160;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></div><div style="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">3&#160;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></div><div style="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">4&#160;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></div><div style="text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:6pt;font-weight:400;line-height:120%;">&#160;</font></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(a)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(b)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(c)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:6.34pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(d)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-align:justify;"><font><br></font></div><div style="text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">5&#160;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></div><div style="text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:6pt;font-weight:400;line-height:120%;">&#160;</font></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(a)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(b)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:3.865%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:30.844%;"></td><td style="width:1.0%;"></td><td style="width:0.1%;"></td><td style="width:1.999%;"></td><td style="width:0.1%;"></td><td style="width:1.0%;"></td><td style="width:2.252%;"></td><td style="width:1.0%;"></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:52.107%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Date&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">July 29, 2020</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">By&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#47;s&#47; Robert J. Willett</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Robert J. Willett</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">President and Chief Executive Officer</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Principal Executive Officer)</font></td></tr></table></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>3
<FILENAME>a6282020-10qxexhibit312.htm
<DESCRIPTION>EX-31.2
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2020 Workiva -->
<title>Document</title></head><body><div id="ib37565e3a8e249f8ab9a083b020206e1_1"></div><div style="min-height:42.75pt;width:100%;"><div><font><br></font></div></div><div style="text-align:right;"><font style="background-color:rgb(255,255,255, 0.0);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:center;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">CERTIFICATION</font></div><div style="text-align:justify;margin-top:6pt;"><font style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">1&#160;I have reviewed this quarterly report on Form 10-Q of Cognex Corporation&#59;</font></div><div style="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">2&#160;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></div><div style="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">3&#160;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></div><div style="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">4&#160;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></div><div style="text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:6pt;font-weight:400;line-height:120%;">&#160;</font></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(a)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(b)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(c)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:6.34pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(d)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-align:justify;"><font><br></font></div><div style="text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">5&#160;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></div><div style="text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:6pt;font-weight:400;line-height:120%;">&#160;</font></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(a)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="text-indent:-18pt;padding-left:51.75pt;text-align:justify;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">(b)</font><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.78pt;">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></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"></td><td style="width:5.184%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:30.111%;"></td><td style="width:1.0%;"></td><td style="width:0.1%;"></td><td style="width:1.999%;"></td><td style="width:0.1%;"></td><td style="width:1.0%;"></td><td style="width:2.252%;"></td><td style="width:1.0%;"></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:51.521%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Date&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">July 29, 2020</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">By&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#47;s&#47; Paul D. Todgham</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Paul D. Todgham</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Senior Vice President of Finance and Chief Financial Officer</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Principal Financial Officer)</font></td></tr></table></div><div style="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>4
<FILENAME>a6282020-10qxexhibit321.htm
<DESCRIPTION>EX-32.1
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2020 Workiva -->
<title>Document</title></head><body><div id="i7209dc579df845e9bb6fae40d3ec9734_1"></div><div style="min-height:42.75pt;width:100%;"><div><font><br></font></div></div><div style="text-align:right;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Exhibit 32.1*</font></div><div style="text-align:center;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);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 quarterly report on Form 10-Q for the quarterly period ended June&#160;28, 2020 (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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</font></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:6.199%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:30.796%;"></td><td style="width:1.0%;"></td><td style="width:0.1%;"></td><td style="width:1.410%;"></td><td style="width:0.1%;"></td><td style="width:1.0%;"></td><td style="width:2.245%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:51.150%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Date&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">July 29, 2020</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">By&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#47;s&#47; Robert J. Willett</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Robert J. Willett</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">President and Chief Executive Officer</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Principal Executive Officer)</font></td></tr></table></div><div><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:1.953%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:94.047%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">*</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>5
<FILENAME>a6282020-10qxexhibit322.htm
<DESCRIPTION>EX-32.2
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2020 Workiva -->
<title>Document</title></head><body><div id="id5d03213af2d457babfe312c11d327d8_1"></div><div style="min-height:42.75pt;width:100%;"><div><font><br></font></div></div><div style="text-align:right;"><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;">Exhibit 32.2*</font></div><div style="text-align:center;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);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="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:12pt;"><font style="background-color:rgb(255,255,255, 0.0);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 quarterly report on Form 10-Q for the quarterly period ended June&#160;28, 2020 (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="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</font></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:6.345%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:27.721%;"></td><td style="width:1.0%;"></td><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:3.270%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:52.322%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Date&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">July 29, 2020</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">By&#58;</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#47;s&#47; Paul D. Todgham</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Paul D. Todgham</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Senior Vice President of Finance and Chief Financial Officer</font></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</font></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(Principal Financial Officer)</font></td></tr></table></div><div><font style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;">&#160;</font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"></td><td style="width:1.953%;"></td><td style="width:1.0%;"></td><td style="width:1.0%;"></td><td style="width:94.047%;"></td><td style="width:1.0%;"></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">*</font></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><font style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">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="position:relative;width:100%;height:42.75pt;"><div style="position:absolute;bottom:0;width:100%;"><div style="text-align:center;"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>6
<FILENAME>cgnx-20200628.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2020 Workiva-->
<!--r:02407863-1aa6-4dd3-b32c-ad49ce80f53d,g:b1bfca50-59f6-49eb-9685-ec35a28640f4-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cgnx="http://www.cognex.com/20200628" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:num="http://www.xbrl.org/dtr/type/numeric" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.cognex.com/20200628">
  <xs:import namespace="http://fasb.org/srt/2020-01-31" schemaLocation="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd"/>
  <xs:import namespace="http://fasb.org/us-gaap/2020-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/country/2020-01-31" schemaLocation="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/currency/2020-01-31" schemaLocation="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2019-01-31" schemaLocation="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.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-20200628_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" 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-20200628_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-20200628_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-20200628_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="CoverPage" roleURI="http://www.cognex.com/role/CoverPage">
        <link:definition>0001001 - 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="ConsolidatedStatementsofOperations" roleURI="http://www.cognex.com/role/ConsolidatedStatementsofOperations">
        <link:definition>1001002 - 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://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome">
        <link:definition>1002003 - 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://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical">
        <link:definition>1003004 - 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://www.cognex.com/role/ConsolidatedBalanceSheets">
        <link:definition>1004005 - 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://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical">
        <link:definition>1005006 - 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://www.cognex.com/role/ConsolidatedStatementsofCashFlows">
        <link:definition>1006007 - 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="ConsolidatedStatementofShareholdersEquity" roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity">
        <link:definition>1007008 - Statement - Consolidated Statement 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="ConsolidatedStatementofShareholdersEquityParenthetical" roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical">
        <link:definition>1008009 - Statement - Consolidated Statement 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://www.cognex.com/role/SummaryofSignificantAccountingPolicies">
        <link:definition>2101101 - 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="SummaryofSignificantAccountingPoliciesPolicies" roleURI="http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies">
        <link:definition>2202201 - 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="NewPronouncements" roleURI="http://www.cognex.com/role/NewPronouncements">
        <link:definition>2103102 - 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://www.cognex.com/role/FairValueMeasurements">
        <link:definition>2104103 - 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="FairValueMeasurementsTables" roleURI="http://www.cognex.com/role/FairValueMeasurementsTables">
        <link:definition>2305301 - 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="FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails" roleURI="http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails">
        <link:definition>2406401 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (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="FairValueMeasurementsDetails" roleURI="http://www.cognex.com/role/FairValueMeasurementsDetails">
        <link:definition>2407402 - Disclosure - Fair Value Measurements (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestments" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestments">
        <link:definition>2108104 - 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="CashCashEquivalentsandInvestmentsTables" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables">
        <link:definition>2309302 - 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="CashCashEquivalentsandInvestmentsDetails" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails">
        <link:definition>2410403 - Disclosure - Cash, Cash Equivalents, and 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="CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails">
        <link:definition>2411404 - Disclosure - Cash, Cash Equivalents, and Investments - Components of Cash, Cash Equivalents, and 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="CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails">
        <link:definition>2412405 - Disclosure - Cash, Cash Equivalents, and Investments - Summary of Available-for-Sale 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="CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails">
        <link:definition>2413406 - Disclosure - Cash, Cash Equivalents, and Investments - Gross Unrealized Losses and Fair Values for Available-for-Sale 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="CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails">
        <link:definition>2414407 - Disclosure - Cash, Cash Equivalents, and Investments Cash, Cash Equivalents, and Investments - Schedule of Allowance for Credit Loss Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails" roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails">
        <link:definition>2415408 - Disclosure - Cash, Cash Equivalents, and Investments - Effective Maturity Dates of Available-for-Sale 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="Inventories" roleURI="http://www.cognex.com/role/Inventories">
        <link:definition>2116105 - 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="InventoriesTables" roleURI="http://www.cognex.com/role/InventoriesTables">
        <link:definition>2317303 - 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="InventoriesScheduleofInventoriesDetails" roleURI="http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails">
        <link:definition>2418409 - Disclosure - Inventories - Schedule of Inventories (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InventoriesNarrativeDetails" roleURI="http://www.cognex.com/role/InventoriesNarrativeDetails">
        <link:definition>2419410 - Disclosure - Inventories - 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="Leases" roleURI="http://www.cognex.com/role/Leases">
        <link:definition>2120106 - Disclosure - Leases</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesTables" roleURI="http://www.cognex.com/role/LeasesTables">
        <link:definition>2321304 - 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="LeasesNarrativeDetails" roleURI="http://www.cognex.com/role/LeasesNarrativeDetails">
        <link:definition>2422411 - Disclosure - Leases - 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="LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails" roleURI="http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails">
        <link:definition>2423412 - Disclosure - Leases - Future Minimum Lease Payment Obligations Under Operating 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="GoodwillNotes" roleURI="http://www.cognex.com/role/GoodwillNotes">
        <link:definition>2124107 - Disclosure - Goodwill (Notes)</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://www.cognex.com/role/GoodwillTables">
        <link:definition>2325305 - 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="GoodwillDetails" roleURI="http://www.cognex.com/role/GoodwillDetails">
        <link:definition>2426413 - Disclosure - Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssets" roleURI="http://www.cognex.com/role/IntangibleAssets">
        <link:definition>2127108 - 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="IntangibleAssetsTables" roleURI="http://www.cognex.com/role/IntangibleAssetsTables">
        <link:definition>2328306 - 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="IntangibleAssetsDetails" roleURI="http://www.cognex.com/role/IntangibleAssetsDetails">
        <link:definition>2429414 - Disclosure - Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssetsDetails_1" roleURI="http://www.cognex.com/role/IntangibleAssetsDetails_1">
        <link:definition>2429414 - Disclosure - Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="WarrantyObligations" roleURI="http://www.cognex.com/role/WarrantyObligations">
        <link:definition>2130109 - Disclosure - Warranty Obligations</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="WarrantyObligationsTables" roleURI="http://www.cognex.com/role/WarrantyObligationsTables">
        <link:definition>2331307 - Disclosure - Warranty Obligations (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="WarrantyObligationsChangesinWarrantyObligationsDetail" roleURI="http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail">
        <link:definition>2432415 - Disclosure - Warranty Obligations - 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="DerivativeInstruments" roleURI="http://www.cognex.com/role/DerivativeInstruments">
        <link:definition>2133110 - 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="DerivativeInstrumentsTables" roleURI="http://www.cognex.com/role/DerivativeInstrumentsTables">
        <link:definition>2334308 - 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="DerivativeInstrumentsDetails" roleURI="http://www.cognex.com/role/DerivativeInstrumentsDetails">
        <link:definition>2435416 - Disclosure - Derivative Instruments (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="DerivativeInstrumentsOutstandingForwardContractsTableDetails" roleURI="http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails">
        <link:definition>2436417 - Disclosure - Derivative Instruments - Outstanding Forward Contracts Table (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="DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails" roleURI="http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails">
        <link:definition>2437418 - Disclosure - Derivative Instruments - Schedule of Derivative Instruments in Statement of Financial Position, Fair Value (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsOffsettingAssetsDetails" roleURI="http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails">
        <link:definition>2438419 - Disclosure - Derivative Instruments - Offsetting 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="DerivativeInstrumentsDerivativeInstrumentsGainLossDetails" roleURI="http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails">
        <link:definition>2439420 - Disclosure - Derivative Instruments - Derivative Instruments, Gain (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="RevenueRecognition" roleURI="http://www.cognex.com/role/RevenueRecognition">
        <link:definition>2140111 - 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="RevenueRecognitionTables" roleURI="http://www.cognex.com/role/RevenueRecognitionTables">
        <link:definition>2341309 - 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="RevenueRecognitionRevenueDisaggregatedbyGeographyDetails" roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails">
        <link:definition>2442421 - Disclosure - Revenue Recognition - Revenue Disaggregated by Geography (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="RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails" roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails">
        <link:definition>2443422 - Disclosure - Revenue Recognition - Revenue Disaggregated by Products and Services (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="RevenueRecognitionAdditionalInformationDetails" roleURI="http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails">
        <link:definition>2444423 - Disclosure - Revenue Recognition - 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="RevenueRecognitionScheduleofAllowanceforCreditLossDetails" roleURI="http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails">
        <link:definition>2445424 - Disclosure - Revenue Recognition - Schedule of 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="RevenueRecognitionDeferredRevenueActivityDetails" roleURI="http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails">
        <link:definition>2446425 - Disclosure - Revenue Recognition - Deferred Revenue Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpense" roleURI="http://www.cognex.com/role/StockBasedCompensationExpense">
        <link:definition>2147112 - Disclosure - Stock-Based Compensation Expense</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="StockBasedCompensationExpenseTables" roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseTables">
        <link:definition>2348310 - Disclosure - Stock-Based Compensation Expense (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="StockBasedCompensationExpenseDetails" roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseDetails">
        <link:definition>2449426 - Disclosure - Stock-Based Compensation Expense (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseSummaryofStockOptionActivityDetails" roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails">
        <link:definition>2450427 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails" roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails">
        <link:definition>2451428 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (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="StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails" roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails">
        <link:definition>2452429 - Disclosure - Stock-Based Compensation Expense Stock-Based Compensation Expense - Schedule of 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="StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails" roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails">
        <link:definition>2453430 - Disclosure - Stock-Based Compensation Expense - Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period 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="StockRepurchaseProgram" roleURI="http://www.cognex.com/role/StockRepurchaseProgram">
        <link:definition>2154113 - Disclosure - Stock Repurchase Program</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockRepurchaseProgramDetails" roleURI="http://www.cognex.com/role/StockRepurchaseProgramDetails">
        <link:definition>2455431 - Disclosure - Stock Repurchase Program (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Taxes" roleURI="http://www.cognex.com/role/Taxes">
        <link:definition>2156114 - Disclosure - 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="IncomeTaxesTables" roleURI="http://www.cognex.com/role/IncomeTaxesTables">
        <link:definition>2357311 - 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="IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" roleURI="http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails">
        <link:definition>2458432 - Disclosure - Income Taxes - Reconciliation of 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="IncomeTaxesDetails" roleURI="http://www.cognex.com/role/IncomeTaxesDetails">
        <link:definition>2459433 - Disclosure - 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="WeightedAverageShares" roleURI="http://www.cognex.com/role/WeightedAverageShares">
        <link:definition>2160115 - 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="WeightedAverageSharesTables" roleURI="http://www.cognex.com/role/WeightedAverageSharesTables">
        <link:definition>2361312 - 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="WeightedAverageSharesDetails" roleURI="http://www.cognex.com/role/WeightedAverageSharesDetails">
        <link:definition>2462434 - Disclosure - Weighted-Average Shares (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="WeightedAverageSharesCalculationofWeightedAverageSharesDetails" roleURI="http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails">
        <link:definition>2463435 - Disclosure - Weighted-Average Shares - Calculation of Weighted-Average Shares (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="RestructuringCharges" roleURI="http://www.cognex.com/role/RestructuringCharges">
        <link:definition>2164116 - 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="RestructuringChargesTables" roleURI="http://www.cognex.com/role/RestructuringChargesTables">
        <link:definition>2365313 - 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="RestructuringChargesNarrativeDetails" roleURI="http://www.cognex.com/role/RestructuringChargesNarrativeDetails">
        <link:definition>2466436 - Disclosure - Restructuring Charges - 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="RestructuringChargesSummaryDetails" roleURI="http://www.cognex.com/role/RestructuringChargesSummaryDetails">
        <link:definition>2467437 - Disclosure - Restructuring Charges - Summary (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="RestructuringChargesActivityinRestructuringReserveDetails" roleURI="http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails">
        <link:definition>2468438 - Disclosure - Restructuring Charges - Activity in Restructuring Reserve (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="SubsequentEvents" roleURI="http://www.cognex.com/role/SubsequentEvents">
        <link:definition>2169117 - 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="SubsequentEventsDetails" roleURI="http://www.cognex.com/role/SubsequentEventsDetails">
        <link:definition>2470439 - 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>
    </xs:appinfo>
  </xs:annotation>
  <xs:element id="cgnx_StandardProductsandServicesMember" abstract="true" name="StandardProductsandServicesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_RepurchaseProgramOctober2018Member" abstract="true" name="RepurchaseProgramOctober2018Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_NumberOfGroupsWithinEmployeePopulation" abstract="false" name="NumberOfGroupsWithinEmployeePopulation" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_EnShapeGmbHMember" abstract="true" name="EnShapeGmbHMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_SellingGeneralAndAdministrativeMember" abstract="true" name="SellingGeneralAndAdministrativeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" abstract="false" name="OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AccruedExpensesMember" abstract="true" name="AccruedExpensesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased" abstract="false" name="StockRepurchaseProgramAggregateNumberofSharesRepurchased" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" abstract="false" name="LesseeOperatingLeaseLiabilityPaymentsDueYearSix" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" abstract="false" name="Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CurrencytranslationadjustmentsAbstract" abstract="true" name="CurrencytranslationadjustmentsAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" abstract="false" name="IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_TaxyearsopentoexaminationbyInternalRevenueService" abstract="false" name="TaxyearsopentoexaminationbyInternalRevenueService" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" abstract="false" name="ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType"/>
  <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_CashflowshedgesAbstract" abstract="true" name="CashflowshedgesAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <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_LiabilityForUncertainTaxPositions" abstract="false" name="LiabilityForUncertainTaxPositions" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_GViVenturesInc.Member" abstract="true" name="GViVenturesInc.Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_OutstandingForwardContractsTableTextBlock" abstract="false" name="OutstandingForwardContractsTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType"/>
  <xs:element id="cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" abstract="true" name="DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="num:percentItemType"/>
  <xs:element id="cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" abstract="false" name="SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" abstract="false" name="EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <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_ExpirationPeriodOfStockOptionPlan" abstract="false" name="ExpirationPeriodOfStockOptionPlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_AgencyBondsMember" abstract="true" name="AgencyBondsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <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_AsiaExcludingChinaMember" abstract="true" name="AsiaExcludingChinaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <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_ExcessAndObsoleteInventoryCharges" abstract="false" name="ExcessAndObsoleteInventoryCharges" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_IncreaseDecreaseInterestAndPenalties" abstract="false" name="IncreaseDecreaseInterestAndPenalties" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <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_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ApplicationSpecificCustomerSolutionsMember" abstract="true" name="ApplicationSpecificCustomerSolutionsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_LongTermInvestmentsMember" abstract="true" name="LongTermInvestmentsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum: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_CustomerContractsAndRelationshipsMember" abstract="true" name="CustomerContractsAndRelationshipsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_CertificateOfDepositFairValueDisclosure" abstract="false" name="CertificateOfDepositFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <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_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" 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="num:percentItemType"/>
  <xs:element id="cgnx_ChiaroTechnologiesLLCMember" abstract="true" name="ChiaroTechnologiesLLCMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="num:percentItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="num:percentItemType"/>
  <xs:element id="cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities" abstract="false" name="IncomeTaxExaminationYearsUnderExaminationOtherEntities" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <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_SualabMember" abstract="true" name="SualabMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" abstract="true" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" abstract="false" name="LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_StockRepurchaseProgramValue" abstract="false" name="StockRepurchaseProgramValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_GeneralStockOptionPlanMember" abstract="true" name="GeneralStockOptionPlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
  <xs:element id="cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment" abstract="false" name="DeferredRevenueForeignCurrencyExchangeAdjustment" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_RepurchaseProgramMarch2020Member" abstract="true" name="RepurchaseProgramMarch2020Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="nonnum:domainItemType"/>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>7
<FILENAME>cgnx-20200628_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2020 Workiva-->
<!--r:02407863-1aa6-4dd3-b32c-ad49ce80f53d,g:b1bfca50-59f6-49eb-9685-ec35a28640f4-->
<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.cognex.com/role/CoverPage" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CoverPage"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CoverPage" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofOperations"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_663dab84-80d3-47d2-849c-8c309ae0bb5f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ab96fba2-4a94-4fb7-8306-9cafbf93f54d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_663dab84-80d3-47d2-849c-8c309ae0bb5f" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ab96fba2-4a94-4fb7-8306-9cafbf93f54d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_81988619-3e04-445e-84d9-df44afaba241" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_663dab84-80d3-47d2-849c-8c309ae0bb5f" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_81988619-3e04-445e-84d9-df44afaba241" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_5c0d7608-092a-4e84-a21f-a27aafceddd6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_65642c60-32d5-4243-baf7-ba1a05e9a661" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_5c0d7608-092a-4e84-a21f-a27aafceddd6" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_65642c60-32d5-4243-baf7-ba1a05e9a661" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_0abdcf23-e484-40ef-a72c-5c3c2c1deb2c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_5c0d7608-092a-4e84-a21f-a27aafceddd6" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_0abdcf23-e484-40ef-a72c-5c3c2c1deb2c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_4148a58a-8fad-4e0b-9738-aafa7b0c2570" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_6496fbae-c51b-434b-93aa-0fcd8772849f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_4148a58a-8fad-4e0b-9738-aafa7b0c2570" xlink:to="loc_us-gaap_GrossProfit_6496fbae-c51b-434b-93aa-0fcd8772849f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_2c613f5e-0e95-480a-a3e8-b7d13bd359b9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_4148a58a-8fad-4e0b-9738-aafa7b0c2570" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_2c613f5e-0e95-480a-a3e8-b7d13bd359b9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_ca7e9e77-2b34-42c1-ab92-5d66a024258a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_4148a58a-8fad-4e0b-9738-aafa7b0c2570" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_ca7e9e77-2b34-42c1-ab92-5d66a024258a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_29212757-c64d-4ea6-ac84-97f520382e65" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_4148a58a-8fad-4e0b-9738-aafa7b0c2570" xlink:to="loc_us-gaap_RestructuringCharges_29212757-c64d-4ea6-ac84-97f520382e65" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4b7adbaf-15c8-400a-ac7b-206c5b116f93" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_4148a58a-8fad-4e0b-9738-aafa7b0c2570" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4b7adbaf-15c8-400a-ac7b-206c5b116f93" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_e28f16a1-e252-4b60-8c2e-cd2083816421" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_06983838-2926-43a8-9d02-d2253f2a64aa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_e28f16a1-e252-4b60-8c2e-cd2083816421" xlink:to="loc_us-gaap_OperatingIncomeLoss_06983838-2926-43a8-9d02-d2253f2a64aa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_31c045c8-b574-4e53-a649-d7e3dbeacadf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_e28f16a1-e252-4b60-8c2e-cd2083816421" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_31c045c8-b574-4e53-a649-d7e3dbeacadf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_38415d02-03e6-4457-bf8e-b4013b381bfa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_e28f16a1-e252-4b60-8c2e-cd2083816421" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_38415d02-03e6-4457-bf8e-b4013b381bfa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_f52ea6b8-15d7-4cbf-9bb3-a3c31f621acf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_e28f16a1-e252-4b60-8c2e-cd2083816421" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_f52ea6b8-15d7-4cbf-9bb3-a3c31f621acf" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofComprehensiveIncome"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_ad41b45e-1f0f-47bf-8743-585336adfbcf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_581e99af-a37e-4e43-b2f3-ca3c813d8eed" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ad41b45e-1f0f-47bf-8743-585336adfbcf" xlink:to="loc_us-gaap_NetIncomeLoss_581e99af-a37e-4e43-b2f3-ca3c813d8eed" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_a11a28c6-28ed-43fb-8030-f7cfd35a6568" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ad41b45e-1f0f-47bf-8743-585336adfbcf" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_a11a28c6-28ed-43fb-8030-f7cfd35a6568" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_d8438b6e-ed9e-4a39-a0ef-439f5aa09e1b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_077981a6-b949-43d8-b32c-d78aeb889d00" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d8438b6e-ed9e-4a39-a0ef-439f5aa09e1b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_077981a6-b949-43d8-b32c-d78aeb889d00" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_ebab76df-e922-40d0-9683-3e344a1c5471" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d8438b6e-ed9e-4a39-a0ef-439f5aa09e1b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_ebab76df-e922-40d0-9683-3e344a1c5471" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_0309e05b-4543-4184-a4de-0d9a2e1427cd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_d8438b6e-ed9e-4a39-a0ef-439f5aa09e1b" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_0309e05b-4543-4184-a4de-0d9a2e1427cd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_4bcd5fc2-2a14-46ff-b874-7f9ae7311b69" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_73034479-7012-441f-9be8-1bf573c0039b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_4bcd5fc2-2a14-46ff-b874-7f9ae7311b69" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_73034479-7012-441f-9be8-1bf573c0039b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_54076232-03c0-414b-93b3-c24a38439dbc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_4bcd5fc2-2a14-46ff-b874-7f9ae7311b69" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_54076232-03c0-414b-93b3-c24a38439dbc" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofComprehensiveIncomeParenthetical"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedBalanceSheets"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_b59a2180-bd41-4892-bdf3-7a4646ad9994" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_73ecd9ba-1e70-476a-a383-d85755fe2b3b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_b59a2180-bd41-4892-bdf3-7a4646ad9994" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_73ecd9ba-1e70-476a-a383-d85755fe2b3b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_84eeb6db-13f3-4371-a370-4e81ca244c49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_b59a2180-bd41-4892-bdf3-7a4646ad9994" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_84eeb6db-13f3-4371-a370-4e81ca244c49" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_b2cd10b7-e30b-4704-afcc-c76fccabf0a3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_b59a2180-bd41-4892-bdf3-7a4646ad9994" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_b2cd10b7-e30b-4704-afcc-c76fccabf0a3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_52fb82a1-e3d0-4f8e-9ac5-9a32d8b59b54" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_b59a2180-bd41-4892-bdf3-7a4646ad9994" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_52fb82a1-e3d0-4f8e-9ac5-9a32d8b59b54" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_4c4ee0ee-df85-4930-ae9a-da6c5e3a2ca5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_b59a2180-bd41-4892-bdf3-7a4646ad9994" xlink:to="loc_us-gaap_InventoryNet_4c4ee0ee-df85-4930-ae9a-da6c5e3a2ca5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_534c6340-4190-4d23-b7d8-6146945db140" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_b59a2180-bd41-4892-bdf3-7a4646ad9994" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_534c6340-4190-4d23-b7d8-6146945db140" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_6071c2d6-95a5-40ef-b4ce-8795c1f6bbc6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_91afc6ab-9a5a-4152-9f19-a7d18ba8d616" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6071c2d6-95a5-40ef-b4ce-8795c1f6bbc6" xlink:to="loc_us-gaap_CommonStockValueOutstanding_91afc6ab-9a5a-4152-9f19-a7d18ba8d616" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_a84cfda1-927e-4aaa-ba82-cda14d15057e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6071c2d6-95a5-40ef-b4ce-8795c1f6bbc6" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_a84cfda1-927e-4aaa-ba82-cda14d15057e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b0d8bad9-0652-4801-a974-d698a152987f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6071c2d6-95a5-40ef-b4ce-8795c1f6bbc6" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b0d8bad9-0652-4801-a974-d698a152987f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_883aaf6e-9a4d-4c52-b5d0-0ba8da1a7941" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6071c2d6-95a5-40ef-b4ce-8795c1f6bbc6" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_883aaf6e-9a4d-4c52-b5d0-0ba8da1a7941" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_c9176789-bb10-451f-b4f0-763cd8e5eb50" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_4b61034f-d84e-40bf-af41-4a8ffaa824f8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_c9176789-bb10-451f-b4f0-763cd8e5eb50" xlink:to="loc_us-gaap_LiabilitiesCurrent_4b61034f-d84e-40bf-af41-4a8ffaa824f8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_981a305b-470d-4796-a060-66a2043c255b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_c9176789-bb10-451f-b4f0-763cd8e5eb50" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_981a305b-470d-4796-a060-66a2043c255b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_46868053-de20-4f49-9601-ee416407572f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_c9176789-bb10-451f-b4f0-763cd8e5eb50" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_46868053-de20-4f49-9601-ee416407572f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_a9d3862d-54a2-488a-9e2b-14463bb38aa5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_c9176789-bb10-451f-b4f0-763cd8e5eb50" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_a9d3862d-54a2-488a-9e2b-14463bb38aa5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxes_2bdb6b0b-cad6-40c5-aa99-4a5f2de8f00f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxes"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_c9176789-bb10-451f-b4f0-763cd8e5eb50" xlink:to="loc_us-gaap_AccruedIncomeTaxes_2bdb6b0b-cad6-40c5-aa99-4a5f2de8f00f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_d58db4c5-f22c-4ada-9cbe-39943c1791f0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_c9176789-bb10-451f-b4f0-763cd8e5eb50" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_d58db4c5-f22c-4ada-9cbe-39943c1791f0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_cf7963a3-1491-469b-ba4d-982b76362064" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_cc079d46-2550-4d1e-8417-c40590481aae" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cf7963a3-1491-469b-ba4d-982b76362064" xlink:to="loc_us-gaap_Liabilities_cc079d46-2550-4d1e-8417-c40590481aae" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_81cc93fa-4aa4-4dd1-99df-c79f6bfe4f35" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_cf7963a3-1491-469b-ba4d-982b76362064" xlink:to="loc_us-gaap_StockholdersEquity_81cc93fa-4aa4-4dd1-99df-c79f6bfe4f35" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_bde6891a-0cc6-4d94-a58b-c9b956de0460" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_AssetsCurrent_bde6891a-0cc6-4d94-a58b-c9b956de0460" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_8847be72-d10b-4a88-8b84-9a413090c600" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_LongTermInvestments_8847be72-d10b-4a88-8b84-9a413090c600" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_35bf3993-92b0-48d4-b6ba-d1ccc891b132" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_35bf3993-92b0-48d4-b6ba-d1ccc891b132" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_01e4ec82-f6bd-4b9e-b154-bca8eb590c0f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_01e4ec82-f6bd-4b9e-b154-bca8eb590c0f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_54059283-31d6-4654-bdaa-27ad2233745f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_Assets_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_Goodwill_54059283-31d6-4654-bdaa-27ad2233745f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_64921935-fd08-4bb0-bdca-5fdcbbb00b9d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_64921935-fd08-4bb0-bdca-5fdcbbb00b9d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_b11f308e-852a-40a3-95d2-3df8d24f3993" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_b11f308e-852a-40a3-95d2-3df8d24f3993" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_95571d9e-688e-4d6f-8f39-c2edba7c8ae4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_be41dfff-45ab-48b9-b49f-96bfa2684523" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_95571d9e-688e-4d6f-8f39-c2edba7c8ae4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_73261b09-9079-4651-914a-91183450f386" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_ccddad83-2366-4921-a99b-4a0a0eae06eb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_73261b09-9079-4651-914a-91183450f386" xlink:to="loc_us-gaap_AccountsPayableCurrent_ccddad83-2366-4921-a99b-4a0a0eae06eb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_56b37d4f-110c-4f68-9a5b-7a29f9b11119" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_73261b09-9079-4651-914a-91183450f386" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_56b37d4f-110c-4f68-9a5b-7a29f9b11119" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_c468cafb-da9f-4019-8e6f-5bae6f57565e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_73261b09-9079-4651-914a-91183450f386" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_c468cafb-da9f-4019-8e6f-5bae6f57565e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_4f94048e-02d1-4457-93bc-7b637cb46bdf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_73261b09-9079-4651-914a-91183450f386" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_4f94048e-02d1-4457-93bc-7b637cb46bdf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_818689ce-0f92-45d8-96d8-eb63cf163248" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_73261b09-9079-4651-914a-91183450f386" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_818689ce-0f92-45d8-96d8-eb63cf163248" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_38df4a2f-6e99-4247-acac-8beb6863bc03" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_38df4a2f-6e99-4247-acac-8beb6863bc03" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2db038f0-47be-4753-b261-dd891f2d858c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_2db038f0-47be-4753-b261-dd891f2d858c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_fa46e9cd-5675-4f7b-8c50-e0d5878aabdb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_fa46e9cd-5675-4f7b-8c50-e0d5878aabdb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_5dde246d-4c63-4162-bef3-febe9a79651f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_5dde246d-4c63-4162-bef3-febe9a79651f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_3bf078e7-067c-49be-a0f3-977f2890b67d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_3bf078e7-067c-49be-a0f3-977f2890b67d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_286f144b-1cfa-4c49-905a-58ec1a1f01c9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:calculationArc order="6" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_286f144b-1cfa-4c49-905a-58ec1a1f01c9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery_1d267958-f833-4740-988f-554a55e207f2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery_1d267958-f833-4740-988f-554a55e207f2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_b75977ec-fdbb-4221-802a-7bc6fa72a7d2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:calculationArc order="8" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_b75977ec-fdbb-4221-802a-7bc6fa72a7d2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_28be7915-7ec7-43cb-a38f-1eb4e6c76834" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_StockOptionPlanExpense_28be7915-7ec7-43cb-a38f-1eb4e6c76834" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_212239d3-dca5-4852-9d7e-ab01d8e4c5f2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_212239d3-dca5-4852-9d7e-ab01d8e4c5f2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_005fb1de-5c82-416c-9b4e-1c1af0d2a568" xlink:href="cgnx-20200628.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_005fb1de-5c82-416c-9b4e-1c1af0d2a568" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_972095c9-c7ef-40f4-a10e-f0a2e9066f01" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:calculationArc order="12" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_972095c9-c7ef-40f4-a10e-f0a2e9066f01" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_f9144b38-0ab8-483e-b924-6f2e8de8cfcf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_f9144b38-0ab8-483e-b924-6f2e8de8cfcf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_7ce1f321-5ae6-4aaf-9262-69f6ecc3de24" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_7ce1f321-5ae6-4aaf-9262-69f6ecc3de24" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_72deac38-8247-49d5-ac51-3560ee8f0741" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:calculationArc order="15" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_72deac38-8247-49d5-ac51-3560ee8f0741" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_bee5c63c-c11c-43be-ab10-f489ce22b8ba" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:calculationArc order="16" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_bee5c63c-c11c-43be-ab10-f489ce22b8ba" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedTaxesPayable_e89feac8-72df-491e-a1fb-69f758454b73" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedTaxesPayable"/>
    <link:calculationArc order="17" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedTaxesPayable_e89feac8-72df-491e-a1fb-69f758454b73" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_db89c48e-cd7d-4d0c-9646-d79f6d6f5792" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="18" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_NetIncomeLoss_db89c48e-cd7d-4d0c-9646-d79f6d6f5792" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_eeaeca12-a17e-4a12-8294-a22089ab490b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:calculationArc order="19" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_eeaeca12-a17e-4a12-8294-a22089ab490b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_a55f59c0-b622-49e8-a537-66434e422984" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue"/>
    <link:calculationArc order="20" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_a55f59c0-b622-49e8-a537-66434e422984" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_5ddade34-4855-47ed-b785-bd06ffb9264f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Depreciation"/>
    <link:calculationArc order="21" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_7651a70a-8840-48d7-b177-658862ff91df" xlink:to="loc_us-gaap_Depreciation_5ddade34-4855-47ed-b785-bd06ffb9264f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_6665fd53-23a2-4485-b7d8-e4874236a2de" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_5e5ab988-1470-4f7b-8be5-063461f94e6d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6665fd53-23a2-4485-b7d8-e4874236a2de" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_5e5ab988-1470-4f7b-8be5-063461f94e6d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e1fbaf91-0523-4995-8193-8f147bd0bae4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6665fd53-23a2-4485-b7d8-e4874236a2de" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e1fbaf91-0523-4995-8193-8f147bd0bae4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_e750b0e8-9b9f-46aa-a9bc-7402149f262a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6665fd53-23a2-4485-b7d8-e4874236a2de" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_e750b0e8-9b9f-46aa-a9bc-7402149f262a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_aa52ab55-169b-4fd2-a94c-d5739716027a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_6665fd53-23a2-4485-b7d8-e4874236a2de" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_aa52ab55-169b-4fd2-a94c-d5739716027a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_96900ccc-6160-4fc7-bfec-1bc553b9f5fc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_b53086fa-f53b-41ca-887f-65c762af2933" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_96900ccc-6160-4fc7-bfec-1bc553b9f5fc" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_b53086fa-f53b-41ca-887f-65c762af2933" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_2364a907-61d8-4211-be82-168e7d2fb23b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_96900ccc-6160-4fc7-bfec-1bc553b9f5fc" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_2364a907-61d8-4211-be82-168e7d2fb23b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_7ac865db-25fa-4c7f-93b8-78e402f9920f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_96900ccc-6160-4fc7-bfec-1bc553b9f5fc" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_7ac865db-25fa-4c7f-93b8-78e402f9920f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_69b84527-afdf-4ecb-8556-4a2cfc2904d9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_96900ccc-6160-4fc7-bfec-1bc553b9f5fc" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_69b84527-afdf-4ecb-8556-4a2cfc2904d9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_d0ef162a-45f5-410e-96e7-8ed74c1e3a41" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_2432f8b9-6bcb-418c-bf0a-e4d44844d1bd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d0ef162a-45f5-410e-96e7-8ed74c1e3a41" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_2432f8b9-6bcb-418c-bf0a-e4d44844d1bd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_3cc3e5df-2bad-4ea2-bf5f-2d9a8b1affef" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d0ef162a-45f5-410e-96e7-8ed74c1e3a41" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_3cc3e5df-2bad-4ea2-bf5f-2d9a8b1affef" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_1c31a445-c59b-4b96-8204-5d57d8357921" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d0ef162a-45f5-410e-96e7-8ed74c1e3a41" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_1c31a445-c59b-4b96-8204-5d57d8357921" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementofShareholdersEquity"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementofShareholdersEquityParenthetical"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SummaryofSignificantAccountingPolicies"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SummaryofSignificantAccountingPoliciesPolicies"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/NewPronouncements" xlink:type="simple" xlink:href="cgnx-20200628.xsd#NewPronouncements"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/NewPronouncements" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurements" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurements"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/FairValueMeasurements" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestments"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_a2062b4c-5a12-41b6-aa2c-a72b6ca4a40b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_3aefbcfe-933e-41aa-b55a-1fb5232cf82c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_a2062b4c-5a12-41b6-aa2c-a72b6ca4a40b" xlink:to="loc_us-gaap_Cash_3aefbcfe-933e-41aa-b55a-1fb5232cf82c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_047ff782-54d5-4ee2-b4c7-32fd2521137d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_a2062b4c-5a12-41b6-aa2c-a72b6ca4a40b" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_047ff782-54d5-4ee2-b4c7-32fd2521137d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_3448aa29-ce11-4cac-9151-4b5b9f83c3a2" xlink:href="cgnx-20200628.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_fad3afc3-8457-4ad3-8f24-7172dd77098e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_3448aa29-ce11-4cac-9151-4b5b9f83c3a2" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_fad3afc3-8457-4ad3-8f24-7172dd77098e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_305c05e3-ff3a-4b78-a165-307b0f3198d1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_3448aa29-ce11-4cac-9151-4b5b9f83c3a2" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_305c05e3-ff3a-4b78-a165-307b0f3198d1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_ea0054f9-3bd1-4c50-9037-02be081f03b4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_3448aa29-ce11-4cac-9151-4b5b9f83c3a2" xlink:to="loc_us-gaap_LongTermInvestments_ea0054f9-3bd1-4c50-9037-02be081f03b4" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_4e542b69-98b0-4121-a54f-01e59d95f321" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_26225b90-c7c5-40be-bab9-cb5b6b6fa3d6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_4e542b69-98b0-4121-a54f-01e59d95f321" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_26225b90-c7c5-40be-bab9-cb5b6b6fa3d6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_a01ceb82-e116-48d6-b188-83fd20cc4d2b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_4e542b69-98b0-4121-a54f-01e59d95f321" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_a01ceb82-e116-48d6-b188-83fd20cc4d2b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_c89301d6-b402-4153-8dc2-132b6847a728" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_4e542b69-98b0-4121-a54f-01e59d95f321" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_c89301d6-b402-4153-8dc2-132b6847a728" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_e9ecfa9c-d796-4de0-a362-6da689cc89ac" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_e43c93ee-d3ab-4280-86a4-863c0105e146" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_e9ecfa9c-d796-4de0-a362-6da689cc89ac" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_e43c93ee-d3ab-4280-86a4-863c0105e146" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_34f194ac-b8e7-4940-b9b4-cca83bd09334" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_e9ecfa9c-d796-4de0-a362-6da689cc89ac" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_34f194ac-b8e7-4940-b9b4-cca83bd09334" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_55a4c1c4-441d-4faa-b96d-6d41ee0e66ad" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_e50c1a52-04be-43c1-9fc0-bd860fd635c2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_55a4c1c4-441d-4faa-b96d-6d41ee0e66ad" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_e50c1a52-04be-43c1-9fc0-bd860fd635c2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_e70e363a-a394-4952-b9a4-3fb97d9af07c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_55a4c1c4-441d-4faa-b96d-6d41ee0e66ad" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_e70e363a-a394-4952-b9a4-3fb97d9af07c" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_83357d10-b0b2-40a8-875d-aa54016f83a6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_4abc50b3-881b-4035-9bb8-3aa37d20c093" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_83357d10-b0b2-40a8-875d-aa54016f83a6" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_4abc50b3-881b-4035-9bb8-3aa37d20c093" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_bd47a8be-13e4-4399-b49b-63b1c550e2ec" xlink:href="cgnx-20200628.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_83357d10-b0b2-40a8-875d-aa54016f83a6" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_bd47a8be-13e4-4399-b49b-63b1c550e2ec" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_f4241413-7b1b-43db-8ef0-c49d16ad1707" xlink:href="cgnx-20200628.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_83357d10-b0b2-40a8-875d-aa54016f83a6" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_f4241413-7b1b-43db-8ef0-c49d16ad1707" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_ae4dd41e-e248-489a-95d4-48c9d91b761d" xlink:href="cgnx-20200628.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_83357d10-b0b2-40a8-875d-aa54016f83a6" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_ae4dd41e-e248-489a-95d4-48c9d91b761d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_d3734f79-7e4c-464b-85fc-3ea22e3e9fb9" xlink:href="cgnx-20200628.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_83357d10-b0b2-40a8-875d-aa54016f83a6" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_d3734f79-7e4c-464b-85fc-3ea22e3e9fb9" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/Inventories" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Inventories"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/Inventories" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/InventoriesTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesScheduleofInventoriesDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_d9f161aa-15c7-4fa0-aa6b-65878fdd55cb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f330da0d-b61a-4382-8f5b-3cb2531164ca" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d9f161aa-15c7-4fa0-aa6b-65878fdd55cb" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f330da0d-b61a-4382-8f5b-3cb2531164ca" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_4430a17a-9169-4aff-b7b4-7386138de412" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d9f161aa-15c7-4fa0-aa6b-65878fdd55cb" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_4430a17a-9169-4aff-b7b4-7386138de412" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_c5788f81-c10c-432e-8294-ba971b776bad" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_d9f161aa-15c7-4fa0-aa6b-65878fdd55cb" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_c5788f81-c10c-432e-8294-ba971b776bad" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesNarrativeDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/InventoriesNarrativeDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/Leases" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Leases"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/Leases" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/LeasesTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesNarrativeDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/LeasesNarrativeDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_b8e25084-15cd-4b13-9532-8bb59bb5d7f6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_b8e25084-15cd-4b13-9532-8bb59bb5d7f6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_b5e5605f-40f3-4a73-a263-8e5ecc38d7ac" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_b5e5605f-40f3-4a73-a263-8e5ecc38d7ac" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_94648aa3-c93e-420e-bf3a-51f78bf1017a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_94648aa3-c93e-420e-bf3a-51f78bf1017a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_1d24980b-afff-41b8-8f3c-bf71e9874518" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_1d24980b-afff-41b8-8f3c-bf71e9874518" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_ce27e2d6-5793-42ec-a6eb-764328e49e42" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_ce27e2d6-5793-42ec-a6eb-764328e49e42" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_bf546168-fec8-4ea2-a7d5-f5e951641f57" xlink:href="cgnx-20200628.xsd#cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:to="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_bf546168-fec8-4ea2-a7d5-f5e951641f57" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix_0349e853-b169-4fc4-9754-0a95801ea349" xlink:href="cgnx-20200628.xsd#cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_7a28a217-db6c-4b29-a6b2-12ced81f698b" xlink:to="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix_0349e853-b169-4fc4-9754-0a95801ea349" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillNotes" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillNotes"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/GoodwillNotes" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/GoodwillTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/GoodwillDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssets" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssets"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/IntangibleAssets" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/IntangibleAssetsTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/IntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_dbfbbb54-54eb-4185-b3db-54760c28ee15" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_dbfbbb54-54eb-4185-b3db-54760c28ee15" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_c1e04b65-bdb0-4ba1-9583-e833f607f3cb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_c1e04b65-bdb0-4ba1-9583-e833f607f3cb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_56d13dc7-2776-4249-94e7-d6c787eca87c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_56d13dc7-2776-4249-94e7-d6c787eca87c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_153cf350-9a86-4825-a14d-f010b5fe89b1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_153cf350-9a86-4825-a14d-f010b5fe89b1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_bbe2bcb7-6949-4008-a65d-1be0dbd4e137" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_bbe2bcb7-6949-4008-a65d-1be0dbd4e137" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_9146004c-521f-4686-8ca7-5410a192b150" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_9146004c-521f-4686-8ca7-5410a192b150" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_a89e454c-3f60-4286-bddc-12ccbe0bbbfe" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_129425e4-df32-4bed-8ba6-f61ad277ef16" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_a89e454c-3f60-4286-bddc-12ccbe0bbbfe" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsDetails_1" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsDetails_1"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/IntangibleAssetsDetails_1" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_0cb68d4c-b1de-46a2-a235-13a824c501ba" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_e21d2bd5-c3fb-436f-bf1b-6c51ffdd5acf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_0cb68d4c-b1de-46a2-a235-13a824c501ba" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_e21d2bd5-c3fb-436f-bf1b-6c51ffdd5acf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_14eb04ba-5f52-4ae0-8bc4-8bc5f109ed76" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_0cb68d4c-b1de-46a2-a235-13a824c501ba" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_14eb04ba-5f52-4ae0-8bc4-8bc5f109ed76" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligations" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligations"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/WarrantyObligations" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligationsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligationsTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/WarrantyObligationsTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligationsChangesinWarrantyObligationsDetail"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstruments" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstruments"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/DerivativeInstruments" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsOutstandingForwardContractsTableDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsOffsettingAssetsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_3c5005e5-12c1-43fb-9010-eb31357c2ce7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_c8ab8f6a-2d38-43cc-b97f-f3429590b88f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_3c5005e5-12c1-43fb-9010-eb31357c2ce7" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_c8ab8f6a-2d38-43cc-b97f-f3429590b88f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_0a1371dc-b588-497c-a9d8-a5e6a0638b0f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_3c5005e5-12c1-43fb-9010-eb31357c2ce7" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_0a1371dc-b588-497c-a9d8-a5e6a0638b0f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_69ca3bb4-a396-47ff-9ac5-d866f7ceb69a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_2feb325c-ee40-4c48-8577-d70be1b83a1d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_69ca3bb4-a396-47ff-9ac5-d866f7ceb69a" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_2feb325c-ee40-4c48-8577-d70be1b83a1d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_b25c12f0-ce09-42bc-ab85-0ca127e31628" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_69ca3bb4-a396-47ff-9ac5-d866f7ceb69a" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_b25c12f0-ce09-42bc-ab85-0ca127e31628" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsDerivativeInstrumentsGainLossDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognition" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognition"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RevenueRecognition" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionAdditionalInformationDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionScheduleofAllowanceforCreditLossDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionDeferredRevenueActivityDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpense" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpense"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpense" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockRepurchaseProgram" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockRepurchaseProgram"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockRepurchaseProgram" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockRepurchaseProgramDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockRepurchaseProgramDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/StockRepurchaseProgramDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/Taxes" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Taxes"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/Taxes" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/IncomeTaxesTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_bbb3ec57-5ff9-4fab-876c-658009517c14" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_bbb3ec57-5ff9-4fab-876c-658009517c14" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_53e587d6-1c2f-4c84-8a82-ef21eb26db0b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_53e587d6-1c2f-4c84-8a82-ef21eb26db0b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_146868a1-435a-42ef-8a20-b1e26cf9eed4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_146868a1-435a-42ef-8a20-b1e26cf9eed4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_8745648e-8d0f-4d01-ab3a-bcc43b20e693" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_8745648e-8d0f-4d01-ab3a-bcc43b20e693" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_e2c7a5b0-c92b-48ce-9d56-ea6c6f3555c8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_e2c7a5b0-c92b-48ce-9d56-ea6c6f3555c8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_64ca374f-685b-4edd-b5a0-f831dd6340b5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_64ca374f-685b-4edd-b5a0-f831dd6340b5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_031312f7-4e69-42a3-8bf3-eed09ba75f40" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate"/>
    <link:calculationArc order="7" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_031312f7-4e69-42a3-8bf3-eed09ba75f40" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_3bff2a2c-9328-485b-b213-fb0f06420af0" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_fd114281-963d-4fb4-af55-3c510178dd2e" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_3bff2a2c-9328-485b-b213-fb0f06420af0" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/IncomeTaxesDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageShares" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageShares"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/WeightedAverageShares" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesCalculationofWeightedAverageSharesDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_23c087c7-fd45-44ed-aec5-360080a00020" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_3d55f133-818a-4c8e-97f3-f1d3c66430c9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_23c087c7-fd45-44ed-aec5-360080a00020" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_3d55f133-818a-4c8e-97f3-f1d3c66430c9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_dc5df714-1514-458a-aafd-6841181163a6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_23c087c7-fd45-44ed-aec5-360080a00020" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_dc5df714-1514-458a-aafd-6841181163a6" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringCharges" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringCharges"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RestructuringCharges" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesTables"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RestructuringChargesTables" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesNarrativeDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RestructuringChargesNarrativeDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesSummaryDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesSummaryDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RestructuringChargesSummaryDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesActivityinRestructuringReserveDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/SubsequentEvents" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SubsequentEvents"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/SubsequentEvents" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SubsequentEventsDetails"/>
  <link:calculationLink xlink:role="http://www.cognex.com/role/SubsequentEventsDetails" xlink:type="extended"/>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>8
<FILENAME>cgnx-20200628_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2020 Workiva-->
<!--r:02407863-1aa6-4dd3-b32c-ad49ce80f53d,g:b1bfca50-59f6-49eb-9685-ec35a28640f4-->
<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://www.cognex.com/role/CoverPage" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CoverPage"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CoverPage" xlink:type="extended" id="ic1c59ab717a44a1fa783115308cd82e5_CoverPage"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofOperations"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofOperations" xlink:type="extended" id="ie84863987b8048e39a9a3861eccb9662_ConsolidatedStatementsofOperations"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofComprehensiveIncome"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome" xlink:type="extended" id="ic9565bc8dc2348e58dc71adb78369584_ConsolidatedStatementsofComprehensiveIncome"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofComprehensiveIncomeParenthetical"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical" xlink:type="extended" id="i9cc5422412ec4bbc8dd29a8655b25ff7_ConsolidatedStatementsofComprehensiveIncomeParenthetical"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedBalanceSheets"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedBalanceSheets" xlink:type="extended" id="i7160a504c0344814b310fd382237951b_ConsolidatedBalanceSheets"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended" id="ie5ca7cbd81eb4055bb6f02084eaabe29_ConsolidatedBalanceSheetsParenthetical"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended" id="i18ae78c3382341c28cc65d63b16def5e_ConsolidatedStatementsofCashFlows"/>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementofShareholdersEquity"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity" xlink:type="extended" id="i396e52f71cdb400489f10095a98a07ae_ConsolidatedStatementofShareholdersEquity">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_bb9fc22d-eaf0-4136-8f98-3a2246ee3222" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_bb9fc22d-eaf0-4136-8f98-3a2246ee3222" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_9e94eaaa-8212-4739-949a-dab2e061d45e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_CommonStockSharesIssued_9e94eaaa-8212-4739-949a-dab2e061d45e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_a4a357ab-f574-40cd-ba70-95ffd38028ee" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockholdersEquity_a4a357ab-f574-40cd-ba70-95ffd38028ee" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_4becc6ac-d3b0-47cc-9248-9ebd7d2a34ec" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_4becc6ac-d3b0-47cc-9248-9ebd7d2a34ec" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_ed8a350b-1804-46e4-bbc3-a0d722a902da" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_ed8a350b-1804-46e4-bbc3-a0d722a902da" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_2b7caf6a-f586-4d90-b5e4-699966d9a215" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_2b7caf6a-f586-4d90-b5e4-699966d9a215" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_94273878-4aad-4b82-bb59-52cfcfa63d18" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_94273878-4aad-4b82-bb59-52cfcfa63d18" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_48e75253-2735-427d-9225-e49990cb26d7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_48e75253-2735-427d-9225-e49990cb26d7" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCash_17d44d82-0b9d-4732-8d5c-23bd47b8b0e4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DividendsCash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_DividendsCash_17d44d82-0b9d-4732-8d5c-23bd47b8b0e4" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d8ac93a0-6581-483d-85c5-4a08e67f009e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_NetIncomeLoss_d8ac93a0-6581-483d-85c5-4a08e67f009e" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_6405f4e2-6f83-4bde-9e97-adcc48a373cf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_6405f4e2-6f83-4bde-9e97-adcc48a373cf" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_64a8a809-5f95-4bb9-843c-7986abc13887" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_64a8a809-5f95-4bb9-843c-7986abc13887" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_e1717e8e-a213-460f-b0f3-7697166804cb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_e1717e8e-a213-460f-b0f3-7697166804cb" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_870957cd-3a5b-4d34-9bf1-307ca5f1029e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_870957cd-3a5b-4d34-9bf1-307ca5f1029e" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_1e188e3b-4d80-44e2-8ddc-e3400d6af6d1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_a9c39291-6ad3-4aa5-a2da-78634cbe2f23" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_83ed602b-656c-45a5-b6be-53fea09b19c0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_bb9fc22d-eaf0-4136-8f98-3a2246ee3222" xlink:to="loc_us-gaap_StatementTable_83ed602b-656c-45a5-b6be-53fea09b19c0" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_e24ac97b-8499-40a7-9e52-78f90cfeb02f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_83ed602b-656c-45a5-b6be-53fea09b19c0" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_e24ac97b-8499-40a7-9e52-78f90cfeb02f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_e24ac97b-8499-40a7-9e52-78f90cfeb02f_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_e24ac97b-8499-40a7-9e52-78f90cfeb02f" xlink:to="loc_us-gaap_EquityComponentDomain_e24ac97b-8499-40a7-9e52-78f90cfeb02f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_e24ac97b-8499-40a7-9e52-78f90cfeb02f" xlink:to="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_fd6b863c-f6e9-4fdd-9693-9e4aa1f131ea" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_CommonStockMember_fd6b863c-f6e9-4fdd-9693-9e4aa1f131ea" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_82172fc5-1dc9-4411-92d6-b7c8d79ad3ea" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_82172fc5-1dc9-4411-92d6-b7c8d79ad3ea" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_af72af05-2b46-4e40-ae4e-84fbbec73a97" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_RetainedEarningsMember_af72af05-2b46-4e40-ae4e-84fbbec73a97" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_a73ec11c-4a5a-40c9-b6ad-03da69133682" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_a73ec11c-4a5a-40c9-b6ad-03da69133682" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementofShareholdersEquityParenthetical"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical" xlink:type="extended" id="i0fc6f30ef07e4e188713165560485a26_ConsolidatedStatementofShareholdersEquityParenthetical"/>
  <link:roleRef roleURI="http://www.cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SummaryofSignificantAccountingPolicies"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="extended" id="i1361f8fbacd04260ace71655e9a55786_SummaryofSignificantAccountingPolicies"/>
  <link:roleRef roleURI="http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SummaryofSignificantAccountingPoliciesPolicies"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="extended" id="ie59a6756529b427abc70a79b5abed8de_SummaryofSignificantAccountingPoliciesPolicies"/>
  <link:roleRef roleURI="http://www.cognex.com/role/NewPronouncements" xlink:type="simple" xlink:href="cgnx-20200628.xsd#NewPronouncements"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/NewPronouncements" xlink:type="extended" id="ie721d8df63534af1b5a31e2d3634cb88_NewPronouncements"/>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurements" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurements"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/FairValueMeasurements" xlink:type="extended" id="i229a884232364375ae4b2aa239d94e1f_FairValueMeasurements"/>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsTables" xlink:type="extended" id="i441b01a9930e42d097445f51f806ae79_FairValueMeasurementsTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails" xlink:type="extended" id="i38e6bd5eda08447c93ad30fc87c3ae29_FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CertificateOfDepositFairValueDisclosure_910e86fd-ebcb-4e3b-9639-ae227dd20bc2" xlink:href="cgnx-20200628.xsd#cgnx_CertificateOfDepositFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:to="loc_cgnx_CertificateOfDepositFairValueDisclosure_910e86fd-ebcb-4e3b-9639-ae227dd20bc2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_7d2325da-1b15-4d65-bfcc-07973252412f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_7d2325da-1b15-4d65-bfcc-07973252412f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d3b9e052-46c5-4ce9-a7bc-c85a5490ede1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d3b9e052-46c5-4ce9-a7bc-c85a5490ede1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_2eb4d9d0-aac2-47ea-9e37-1373dd2277f2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_2eb4d9d0-aac2-47ea-9e37-1373dd2277f2" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_6b0e8294-b391-4f4c-949a-10154d7f2189" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_6b0e8294-b391-4f4c-949a-10154d7f2189" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_fbd8b133-0ca9-40e9-806f-09858e8d225b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_fbd8b133-0ca9-40e9-806f-09858e8d225b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_b7950ca8-0837-4b63-b982-832dc899d105" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_b7950ca8-0837-4b63-b982-832dc899d105" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_b7950ca8-0837-4b63-b982-832dc899d105_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_b7950ca8-0837-4b63-b982-832dc899d105" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_b7950ca8-0837-4b63-b982-832dc899d105_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_b7950ca8-0837-4b63-b982-832dc899d105" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_5ecf2d86-0919-47c0-b2bf-063adca78092" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_5ecf2d86-0919-47c0-b2bf-063adca78092" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_818554f2-d2af-4942-bee7-c24f3f545aaa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_818554f2-d2af-4942-bee7-c24f3f545aaa" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_24a3e5f2-4e4b-4aa4-9228-f3a4fc3eeddb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_24a3e5f2-4e4b-4aa4-9228-f3a4fc3eeddb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_924f057e-cc1f-4246-ad1a-975878decbcc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_924f057e-cc1f-4246-ad1a-975878decbcc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_924f057e-cc1f-4246-ad1a-975878decbcc_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_924f057e-cc1f-4246-ad1a-975878decbcc" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_924f057e-cc1f-4246-ad1a-975878decbcc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_0d4ba605-513a-4c27-aba0-964736042698" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_924f057e-cc1f-4246-ad1a-975878decbcc" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_0d4ba605-513a-4c27-aba0-964736042698" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_02a47421-7b9c-45cc-883f-c7e335e05401" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_0d4ba605-513a-4c27-aba0-964736042698" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_02a47421-7b9c-45cc-883f-c7e335e05401" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_45c723b0-d1b3-410a-8f46-9b34da3778b3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:to="loc_us-gaap_FinancialInstrumentAxis_45c723b0-d1b3-410a-8f46-9b34da3778b3" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_45c723b0-d1b3-410a-8f46-9b34da3778b3_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_45c723b0-d1b3-410a-8f46-9b34da3778b3" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_45c723b0-d1b3-410a-8f46-9b34da3778b3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_45c723b0-d1b3-410a-8f46-9b34da3778b3" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_ba4cefe4-6ab9-4ed5-b939-ebcdf767328a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_ba4cefe4-6ab9-4ed5-b939-ebcdf767328a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_a56a3d75-440b-46ba-8c89-67009626e3d6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_a56a3d75-440b-46ba-8c89-67009626e3d6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_9be72582-385b-431c-858f-8bad64b7efa2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_9be72582-385b-431c-858f-8bad64b7efa2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_be1286a9-edc5-47b0-8339-7599159327fa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_be1286a9-edc5-47b0-8339-7599159327fa" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_f7a37558-ac99-45bc-b8b0-e8ca2c8396e4" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_cgnx_AgencyBondsMember_f7a37558-ac99-45bc-b8b0-e8ca2c8396e4" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_8a2fe9b2-793b-42fa-917d-eb7f4d339d69" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_MunicipalBondsMember_8a2fe9b2-793b-42fa-917d-eb7f4d339d69" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsDetails" xlink:type="extended" id="i17b43c54925b4963b6f21f6a6d458dcc_FairValueMeasurementsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_0ed0350c-f7e3-4f1a-bde2-72c875bf3347" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_0ed0350c-f7e3-4f1a-bde2-72c875bf3347" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_afda5dbc-113a-4c81-ba08-93dca7d9c88f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_afda5dbc-113a-4c81-ba08-93dca7d9c88f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueAdjustment_3bfd536a-e3a7-457c-a54f-013817f32178" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesFairValueAdjustment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_LiabilitiesFairValueAdjustment_3bfd536a-e3a7-457c-a54f-013817f32178" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_d23f319c-a071-4bb7-8106-18a5b73552c8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_d23f319c-a071-4bb7-8106-18a5b73552c8" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_8751bb51-ca7b-4eb6-b042-c63333785dcb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_8751bb51-ca7b-4eb6-b042-c63333785dcb" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_201306bc-6eaa-41bb-9aa6-db079bb97221" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_201306bc-6eaa-41bb-9aa6-db079bb97221" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_aa42729e-2f48-442a-bb36-48dabfadc66b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_aa42729e-2f48-442a-bb36-48dabfadc66b" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_996f1300-5ef5-49af-8cc5-e0baa639c7c2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_996f1300-5ef5-49af-8cc5-e0baa639c7c2" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_21c01975-a6ba-4930-8bef-b351a8867569" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_21c01975-a6ba-4930-8bef-b351a8867569" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fb216895-cada-443d-a357-5edcf8149af5" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_srt_RangeAxis_fb216895-cada-443d-a357-5edcf8149af5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_fb216895-cada-443d-a357-5edcf8149af5_default" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_fb216895-cada-443d-a357-5edcf8149af5" xlink:to="loc_srt_RangeMember_fb216895-cada-443d-a357-5edcf8149af5_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_fb216895-cada-443d-a357-5edcf8149af5" xlink:to="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_625bebd5-7c9b-4b2d-9df7-5ac45b76a0fb" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:to="loc_srt_MinimumMember_625bebd5-7c9b-4b2d-9df7-5ac45b76a0fb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d5aec988-f836-4197-b80c-a763d219a1e0" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:to="loc_srt_MaximumMember_d5aec988-f836-4197-b80c-a763d219a1e0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_7ea3752d-0235-4032-bcb6-1232f1552b76" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_7ea3752d-0235-4032-bcb6-1232f1552b76" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7ea3752d-0235-4032-bcb6-1232f1552b76_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7ea3752d-0235-4032-bcb6-1232f1552b76" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7ea3752d-0235-4032-bcb6-1232f1552b76_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7ea3752d-0235-4032-bcb6-1232f1552b76" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_84fc982a-be5a-43bf-acfc-1ca082a5fef7" xlink:href="cgnx-20200628.xsd#cgnx_ChiaroTechnologiesLLCMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_84fc982a-be5a-43bf-acfc-1ca082a5fef7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GViVenturesInc.Member_123f6cbe-88fd-49ed-aee3-e4516e23d6b3" xlink:href="cgnx-20200628.xsd#cgnx_GViVenturesInc.Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:to="loc_cgnx_GViVenturesInc.Member_123f6cbe-88fd-49ed-aee3-e4516e23d6b3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_58363e0b-6763-4d74-a73f-54471652264e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_58363e0b-6763-4d74-a73f-54471652264e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_58363e0b-6763-4d74-a73f-54471652264e_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_58363e0b-6763-4d74-a73f-54471652264e" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_58363e0b-6763-4d74-a73f-54471652264e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_67a516c5-8490-4623-bbdc-0cc77dff0c53" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_58363e0b-6763-4d74-a73f-54471652264e" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_67a516c5-8490-4623-bbdc-0cc77dff0c53" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_d7a78a13-5155-4bd4-90a6-7830270d5de6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_67a516c5-8490-4623-bbdc-0cc77dff0c53" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_d7a78a13-5155-4bd4-90a6-7830270d5de6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_140a5669-3a91-4076-8026-8153411a8c36" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_140a5669-3a91-4076-8026-8153411a8c36" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_140a5669-3a91-4076-8026-8153411a8c36_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_140a5669-3a91-4076-8026-8153411a8c36" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_140a5669-3a91-4076-8026-8153411a8c36_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_d70ba143-e8e9-412d-8a11-e4a324eb563d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_140a5669-3a91-4076-8026-8153411a8c36" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_d70ba143-e8e9-412d-8a11-e4a324eb563d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_8fb20c37-f7a7-428f-92cd-c5a46d9e5dbb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_d70ba143-e8e9-412d-8a11-e4a324eb563d" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_8fb20c37-f7a7-428f-92cd-c5a46d9e5dbb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_16e510d7-ad22-47b6-9c11-55a8db1300db" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_16e510d7-ad22-47b6-9c11-55a8db1300db" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_16e510d7-ad22-47b6-9c11-55a8db1300db_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_16e510d7-ad22-47b6-9c11-55a8db1300db" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_16e510d7-ad22-47b6-9c11-55a8db1300db_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_16e510d7-ad22-47b6-9c11-55a8db1300db" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpenseMember_5efefe40-1fa9-43ed-8a02-51ee65f10126" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpenseMember_5efefe40-1fa9-43ed-8a02-51ee65f10126" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringChargesMember_5f6201d2-7bf1-4e79-a7c3-d4a2677642aa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringChargesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:to="loc_us-gaap_RestructuringChargesMember_5f6201d2-7bf1-4e79-a7c3-d4a2677642aa" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestments"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="extended" id="ia2cc1c1ad550430487bcdbcbbb477e2f_CashCashEquivalentsandInvestments"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="extended" id="i5e97d5acb23d4b5896a55b4f545ca265_CashCashEquivalentsandInvestmentsTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails" xlink:type="extended" id="i7faeb7df413948f094699ac2f2a43869_CashCashEquivalentsandInvestmentsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestReceivable_05a9bc75-48da-415f-a0e3-7b1100509f3d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_InterestReceivable_05a9bc75-48da-415f-a0e3-7b1100509f3d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_4bb48ada-3e1e-48bc-b04f-dc64c5807345" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_4bb48ada-3e1e-48bc-b04f-dc64c5807345" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_694eb9ef-2d7b-4c2e-ac28-bb0a821ea260" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedGains"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_694eb9ef-2d7b-4c2e-ac28-bb0a821ea260" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_627b06ed-c873-434a-b00a-f66cb861639d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_627b06ed-c873-434a-b00a-f66cb861639d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_72a5b237-cfb9-4c7e-843c-dff39e236784" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_72a5b237-cfb9-4c7e-843c-dff39e236784" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_c410ac04-692e-49f1-9a05-0b428ce5af8f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_72a5b237-cfb9-4c7e-843c-dff39e236784" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_c410ac04-692e-49f1-9a05-0b428ce5af8f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_c410ac04-692e-49f1-9a05-0b428ce5af8f_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_c410ac04-692e-49f1-9a05-0b428ce5af8f" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_c410ac04-692e-49f1-9a05-0b428ce5af8f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_b9ea3556-b791-4dfb-ae83-4cab37ecb4ef" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_c410ac04-692e-49f1-9a05-0b428ce5af8f" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_b9ea3556-b791-4dfb-ae83-4cab37ecb4ef" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCurrentAssetsMember_c6490220-4d01-42f0-8067-6d5294b125eb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherCurrentAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_b9ea3556-b791-4dfb-ae83-4cab37ecb4ef" xlink:to="loc_us-gaap_OtherCurrentAssetsMember_c6490220-4d01-42f0-8067-6d5294b125eb" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails" xlink:type="extended" id="i4508121e46c4446bad97ed11823c58e6_CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_59d45cf7-1ecd-4d47-ba1f-fd78f50dc18d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Cash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_Cash_59d45cf7-1ecd-4d47-ba1f-fd78f50dc18d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_10c0f3c5-4756-4d1d-b84f-a54871f10760" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_10c0f3c5-4756-4d1d-b84f-a54871f10760" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5932d9f5-0789-4abb-9ab9-8be743c54578" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5932d9f5-0789-4abb-9ab9-8be743c54578" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_18c8e4f0-759b-4538-8935-54e01c115d03" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_18c8e4f0-759b-4538-8935-54e01c115d03" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_afbc3ccf-aec7-4690-91a0-6dd15728386a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_afbc3ccf-aec7-4690-91a0-6dd15728386a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_73698828-da89-4fa8-97e4-cd959ad36e44" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_LongTermInvestments_73698828-da89-4fa8-97e4-cd959ad36e44" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_79ccc271-1e8f-4589-8895-21c0405cbb35" xlink:href="cgnx-20200628.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_79ccc271-1e8f-4589-8895-21c0405cbb35" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_a5d6fd07-4c83-470f-8ca4-88e53acc60af" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_a5d6fd07-4c83-470f-8ca4-88e53acc60af" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_51bf18f1-9bcb-4493-b1ec-625628d8cf18" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_a5d6fd07-4c83-470f-8ca4-88e53acc60af" xlink:to="loc_us-gaap_FinancialInstrumentAxis_51bf18f1-9bcb-4493-b1ec-625628d8cf18" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_51bf18f1-9bcb-4493-b1ec-625628d8cf18_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_51bf18f1-9bcb-4493-b1ec-625628d8cf18" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_51bf18f1-9bcb-4493-b1ec-625628d8cf18_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_51bf18f1-9bcb-4493-b1ec-625628d8cf18" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_3593f5bd-be39-465b-bac8-7a5cff4b5cc6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_3593f5bd-be39-465b-bac8-7a5cff4b5cc6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_677bebf0-396d-4fbe-8219-840ae9f55619" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_677bebf0-396d-4fbe-8219-840ae9f55619" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_47f36b48-fe15-4e51-9aad-af63e4a594f0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_47f36b48-fe15-4e51-9aad-af63e4a594f0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CertificatesOfDepositMember_652bd603-2bd6-4a69-be2f-1696410a3ac1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CertificatesOfDepositMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_CertificatesOfDepositMember_652bd603-2bd6-4a69-be2f-1696410a3ac1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_f14cb72a-1465-41e9-9908-6cf48b3e4439" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_f14cb72a-1465-41e9-9908-6cf48b3e4439" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_33b71bd2-90db-45c2-915a-ed0d6aeada5f" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_cgnx_AgencyBondsMember_33b71bd2-90db-45c2-915a-ed0d6aeada5f" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_63d2b801-820a-48ba-b7b2-ce39a02f214a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_MunicipalBondsMember_63d2b801-820a-48ba-b7b2-ce39a02f214a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtMember_27366c59-82d9-440e-82dd-e6626b8036bd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_SovereignDebtMember_27366c59-82d9-440e-82dd-e6626b8036bd" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails" xlink:type="extended" id="iedc9db368e214341a9a8ce352a5abedd_CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_66116860-5fd0-4cdd-ad61-787ad9a514bd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_66116860-5fd0-4cdd-ad61-787ad9a514bd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_58fb9982-6f62-423d-a602-9160485c67b7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_58fb9982-6f62-423d-a602-9160485c67b7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_87282782-27c2-4069-9728-11717a7c6424" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_87282782-27c2-4069-9728-11717a7c6424" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_dc769c84-941e-4e43-82a6-2efa22fecfe9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_dc769c84-941e-4e43-82a6-2efa22fecfe9" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_db5f763b-a49c-488a-a5e7-5a988216b1bd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:to="loc_us-gaap_FinancialInstrumentAxis_db5f763b-a49c-488a-a5e7-5a988216b1bd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_db5f763b-a49c-488a-a5e7-5a988216b1bd_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_db5f763b-a49c-488a-a5e7-5a988216b1bd" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_db5f763b-a49c-488a-a5e7-5a988216b1bd_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_db5f763b-a49c-488a-a5e7-5a988216b1bd" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_7478473e-98c9-44b2-8d90-668addf3dc39" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_cgnx_AgencyBondsMember_7478473e-98c9-44b2-8d90-668addf3dc39" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_cfbb851f-e0b8-4537-a931-cb413370ee9d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_cfbb851f-e0b8-4537-a931-cb413370ee9d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_a8928aa5-7a39-42ec-bc8a-74f44f173848" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_a8928aa5-7a39-42ec-bc8a-74f44f173848" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_a701dd8c-08c9-4a1f-bef7-57e49947e044" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_a701dd8c-08c9-4a1f-bef7-57e49947e044" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_7e4ea056-5424-443f-8187-d10fcfe0b08a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_7e4ea056-5424-443f-8187-d10fcfe0b08a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_7a25a27d-e2c6-4635-89c9-50ab5a10fb78" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_MunicipalBondsMember_7a25a27d-e2c6-4635-89c9-50ab5a10fb78" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis_87615e52-4cbc-4f5e-a917-cc4d623c392f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:to="loc_us-gaap_InvestmentTypeAxis_87615e52-4cbc-4f5e-a917-cc4d623c392f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_87615e52-4cbc-4f5e-a917-cc4d623c392f_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_InvestmentTypeAxis_87615e52-4cbc-4f5e-a917-cc4d623c392f" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_87615e52-4cbc-4f5e-a917-cc4d623c392f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_InvestmentTypeAxis_87615e52-4cbc-4f5e-a917-cc4d623c392f" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_2aab153a-e7fc-4158-ad0a-f819a006a649" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_2aab153a-e7fc-4158-ad0a-f819a006a649" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_c87a1836-d9bf-468e-af91-5e71e22488fb" xlink:href="cgnx-20200628.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:to="loc_cgnx_LongTermInvestmentsMember_c87a1836-d9bf-468e-af91-5e71e22488fb" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails" xlink:type="extended" id="i8215aeb083b84572aa1485f51a17bb52_CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_6e4b55e2-71b5-4d84-a344-e21f28f8253d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_6e4b55e2-71b5-4d84-a344-e21f28f8253d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_9200b61d-df5f-4067-b683-9c68f14ec2b7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_9200b61d-df5f-4067-b683-9c68f14ec2b7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_379ed7d6-5001-4116-8a77-eb4a88210656" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_379ed7d6-5001-4116-8a77-eb4a88210656" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_81eeb91d-c348-42aa-997a-327c75e20014" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_81eeb91d-c348-42aa-997a-327c75e20014" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_e416fac0-aa5d-4a24-9216-2f9db4d50ce4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_e416fac0-aa5d-4a24-9216-2f9db4d50ce4" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_f61dd68e-f12d-4644-a8f6-6e9ebd10148b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_f61dd68e-f12d-4644-a8f6-6e9ebd10148b" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_e1dc5913-d63b-41d2-87fe-ef6165d6acb6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_e1dc5913-d63b-41d2-87fe-ef6165d6acb6" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_416f2bfb-4492-4133-9372-b6619061294b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_416f2bfb-4492-4133-9372-b6619061294b" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_c7938238-1cdc-4123-a710-dcba71601a81" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_c7938238-1cdc-4123-a710-dcba71601a81" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_1868371e-1d64-47c5-b647-2ba21a79d8d0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_c7938238-1cdc-4123-a710-dcba71601a81" xlink:to="loc_us-gaap_FinancialInstrumentAxis_1868371e-1d64-47c5-b647-2ba21a79d8d0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_1868371e-1d64-47c5-b647-2ba21a79d8d0_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_1868371e-1d64-47c5-b647-2ba21a79d8d0" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_1868371e-1d64-47c5-b647-2ba21a79d8d0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_1868371e-1d64-47c5-b647-2ba21a79d8d0" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_5ae04afb-82ca-4b1d-b506-ecd8a770fe47" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_5ae04afb-82ca-4b1d-b506-ecd8a770fe47" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_0bcdd5b7-dd3f-4c35-b8a1-128190a1c9af" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_cgnx_AgencyBondsMember_0bcdd5b7-dd3f-4c35-b8a1-128190a1c9af" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_b455e3d6-ae69-4ce2-9d36-affdb85b4414" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_b455e3d6-ae69-4ce2-9d36-affdb85b4414" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_94619be4-4f24-424f-9ddd-1172830f2f6a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_94619be4-4f24-424f-9ddd-1172830f2f6a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_278d3cc1-d18a-43fa-acd8-95bc785ca270" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_278d3cc1-d18a-43fa-acd8-95bc785ca270" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_161e9468-89d8-472a-8d5b-d149fc34e02a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_MunicipalBondsMember_161e9468-89d8-472a-8d5b-d149fc34e02a" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails" xlink:type="extended" id="i7b7a83c07de64739a69eac4ae20f3ede_CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails" xlink:type="extended" id="i195c6a9235f3498f930033add71b2755_CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_1829aed8-5964-43d4-bb44-ffd72526e089" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_1829aed8-5964-43d4-bb44-ffd72526e089" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_69c84840-86c6-4091-a6c4-e1185f222069" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_69c84840-86c6-4091-a6c4-e1185f222069" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_08deefdb-a1f5-4fa5-89e9-c7cf520d5dc0" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_08deefdb-a1f5-4fa5-89e9-c7cf520d5dc0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_8e0674e0-fa61-4a05-9229-73e736d793b4" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_8e0674e0-fa61-4a05-9229-73e736d793b4" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_3287883d-01e6-4866-b73f-875ebe4be071" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_3287883d-01e6-4866-b73f-875ebe4be071" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_2747ce3a-04a6-4c40-9b94-f7d787a53ac6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_2747ce3a-04a6-4c40-9b94-f7d787a53ac6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_30263ec0-d13c-42c9-9185-780265285ec4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_30263ec0-d13c-42c9-9185-780265285ec4" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_30263ec0-d13c-42c9-9185-780265285ec4" xlink:to="loc_us-gaap_FinancialInstrumentAxis_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_7e2b9dbe-e9db-4534-ad26-868e442ea895" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_7e2b9dbe-e9db-4534-ad26-868e442ea895" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_340e75bd-2be5-44f7-b6d6-376c2aa41eff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_340e75bd-2be5-44f7-b6d6-376c2aa41eff" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_66bf9109-2d56-40b6-9af6-15262f8300a4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_66bf9109-2d56-40b6-9af6-15262f8300a4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_ffa5a086-0415-4a1a-9fcf-1a58522146d0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_ffa5a086-0415-4a1a-9fcf-1a58522146d0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_75525e79-a455-45dd-aa29-f13a687bfbe1" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_cgnx_AgencyBondsMember_75525e79-a455-45dd-aa29-f13a687bfbe1" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_8be3f5cf-dfb5-4707-be49-4cc2590d8bfa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_MunicipalBondsMember_8be3f5cf-dfb5-4707-be49-4cc2590d8bfa" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/Inventories" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Inventories"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/Inventories" xlink:type="extended" id="i7b3c804a8eff40f3b22d2c8c971679a2_Inventories"/>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/InventoriesTables" xlink:type="extended" id="i21c313de9714495facdfe9c996fcae23_InventoriesTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesScheduleofInventoriesDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails" xlink:type="extended" id="i6c0a889663464fe1a7d89822387c542a_InventoriesScheduleofInventoriesDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/InventoriesNarrativeDetails" xlink:type="extended" id="iadca63a4d1da4ba29d00aa1ce98b455a_InventoriesNarrativeDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/Leases" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Leases"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/Leases" xlink:type="extended" id="ib1b7bc381a9d478598e911bc6a0ef073_Leases"/>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/LeasesTables" xlink:type="extended" id="i4061ccacb129453ca44a9f8c66537238_LeasesTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/LeasesNarrativeDetails" xlink:type="extended" id="i5699dc9761cb45189ae1c22712662d2d_LeasesNarrativeDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails" xlink:type="extended" id="ia20d25551cf04d55a8b94dfab5f926b8_LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillNotes" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillNotes"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/GoodwillNotes" xlink:type="extended" id="i15c3c29f0e644e9aa3b4b3125f749c2a_GoodwillNotes"/>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/GoodwillTables" xlink:type="extended" id="i20a44804e55945f6ad9bfdab20aa6a32_GoodwillTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/GoodwillDetails" xlink:type="extended" id="i95e8b40b4efe4a358de7527e1e8c0f1d_GoodwillDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssets" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssets"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/IntangibleAssets" xlink:type="extended" id="i943f0950c86746f8a86460a74b4b35f8_IntangibleAssets"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/IntangibleAssetsTables" xlink:type="extended" id="id0e17c78479b489aa369110807fb459b_IntangibleAssetsTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/IntangibleAssetsDetails" xlink:type="extended" id="i9cb481f85a0c4abf83168f1577be818d_IntangibleAssetsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_ce223a2a-a4f5-4388-83c4-2a65f2d62406" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_ce223a2a-a4f5-4388-83c4-2a65f2d62406" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d73e9d80-d10c-4c52-8364-783c6231eb7d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d73e9d80-d10c-4c52-8364-783c6231eb7d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_32ab2f4b-38f2-42aa-a0cd-8b724434e90d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_32ab2f4b-38f2-42aa-a0cd-8b724434e90d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8226541c-6cad-4c3d-bbb3-922946c3417d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8226541c-6cad-4c3d-bbb3-922946c3417d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_125654f5-aedd-4bc9-aadb-44598d304517" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_125654f5-aedd-4bc9-aadb-44598d304517" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_cf01bb5d-70a9-49fb-be83-bca91cc607f5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_cf01bb5d-70a9-49fb-be83-bca91cc607f5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_000a48ac-0271-42b0-b669-436dcb51c1c7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_000a48ac-0271-42b0-b669-436dcb51c1c7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_9c52cffc-06ef-41e4-a2b4-eb878420e691" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_9c52cffc-06ef-41e4-a2b4-eb878420e691" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f6b06c08-141c-4dcb-8888-b396e6ea5894" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f6b06c08-141c-4dcb-8888-b396e6ea5894" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_6b3ce529-d478-4b74-b8d6-88c3ca4ae87c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_6b3ce529-d478-4b74-b8d6-88c3ca4ae87c" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_0c73dcd7-11e5-4f48-8d1d-7e4eda8b0cd2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_0c73dcd7-11e5-4f48-8d1d-7e4eda8b0cd2" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_2c5bbb9a-e304-405a-9703-a4759cf56957" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_2c5bbb9a-e304-405a-9703-a4759cf56957" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_480d1a8e-fa34-4cb4-93e1-3c8f6889488e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8f4debf6-21bb-41ba-8005-c5bc5ac95dde" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8f4debf6-21bb-41ba-8005-c5bc5ac95dde" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_8f4debf6-21bb-41ba-8005-c5bc5ac95dde_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8f4debf6-21bb-41ba-8005-c5bc5ac95dde" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_8f4debf6-21bb-41ba-8005-c5bc5ac95dde_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8f4debf6-21bb-41ba-8005-c5bc5ac95dde" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_b29f0afa-d0bb-4bcc-b755-09971c84eb49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DistributionRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_DistributionRightsMember_b29f0afa-d0bb-4bcc-b755-09971c84eb49" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_a4f6bc5b-dcae-405d-a1cd-df68322169a0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_a4f6bc5b-dcae-405d-a1cd-df68322169a0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_7ba660fa-326a-4416-a676-543636f4cff1" xlink:href="cgnx-20200628.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_7ba660fa-326a-4416-a676-543636f4cff1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_47c4848f-8c4c-48f9-acc8-b0ed114336d1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_47c4848f-8c4c-48f9-acc8-b0ed114336d1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_e5458e9b-ed94-4816-9815-cee157c8aaed" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_e5458e9b-ed94-4816-9815-cee157c8aaed" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_f511eb63-ac36-49bb-960e-916dad08e82a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_TrademarksMember_f511eb63-ac36-49bb-960e-916dad08e82a" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember_c7828506-a870-4eee-aae8-a8188314f23a" xlink:href="cgnx-20200628.xsd#cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember_c7828506-a870-4eee-aae8-a8188314f23a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_1753bcea-4b32-41c1-9ae9-28f50036e92a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_1753bcea-4b32-41c1-9ae9-28f50036e92a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1753bcea-4b32-41c1-9ae9-28f50036e92a_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_1753bcea-4b32-41c1-9ae9-28f50036e92a" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1753bcea-4b32-41c1-9ae9-28f50036e92a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_1753bcea-4b32-41c1-9ae9-28f50036e92a" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabMember_8a970acd-33b4-46ce-8ec2-b925aaf2106e" xlink:href="cgnx-20200628.xsd#cgnx_SualabMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:to="loc_cgnx_SualabMember_8a970acd-33b4-46ce-8ec2-b925aaf2106e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EnShapeGmbHMember_95647e4c-4963-4e16-b86f-fedbe9a3139a" xlink:href="cgnx-20200628.xsd#cgnx_EnShapeGmbHMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:to="loc_cgnx_EnShapeGmbHMember_95647e4c-4963-4e16-b86f-fedbe9a3139a" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligations" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligations"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/WarrantyObligations" xlink:type="extended" id="i8f501ec00759498dad6f6ca967ecc3a3_WarrantyObligations"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligationsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligationsTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/WarrantyObligationsTables" xlink:type="extended" id="i3329c6786b24415eba4d357761f07bd3_WarrantyObligationsTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligationsChangesinWarrantyObligationsDetail"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail" xlink:type="extended" id="id44f06a1fa5649698289b605f08e2fac_WarrantyObligationsChangesinWarrantyObligationsDetail"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstruments" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstruments"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DerivativeInstruments" xlink:type="extended" id="ie1091a2fa62944dcba08dd228d26a5a0_DerivativeInstruments"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended" id="i5bc6ab6e8ded4af9aa83be5b44516785_DerivativeInstrumentsTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsDetails" xlink:type="extended" id="ibb93357eb6174a00b3969107349949cd_DerivativeInstrumentsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_15a46f07-ba14-47af-97b0-ef0f8925beb7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_b80e2232-c85b-4453-b396-096ea5c9e2a9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_15a46f07-ba14-47af-97b0-ef0f8925beb7" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_b80e2232-c85b-4453-b396-096ea5c9e2a9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_fea2082e-4fff-4d44-9729-4bd568c1e415" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_15a46f07-ba14-47af-97b0-ef0f8925beb7" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_fea2082e-4fff-4d44-9729-4bd568c1e415" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_fea2082e-4fff-4d44-9729-4bd568c1e415" xlink:to="loc_us-gaap_HedgingDesignationAxis_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f" xlink:to="loc_us-gaap_HedgingDesignationDomain_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_a717d53d-2493-4285-a423-5686daefdd2d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f" xlink:to="loc_us-gaap_HedgingDesignationDomain_a717d53d-2493-4285-a423-5686daefdd2d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_cfcf3d85-3036-40c0-bf9c-50234dec0aef" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_a717d53d-2493-4285-a423-5686daefdd2d" xlink:to="loc_us-gaap_NondesignatedMember_cfcf3d85-3036-40c0-bf9c-50234dec0aef" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsOutstandingForwardContractsTableDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails" xlink:type="extended" id="i1e23c436a0264dd88cad0828cee5748c_DerivativeInstrumentsOutstandingForwardContractsTableDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_0afcf211-334f-464c-8711-d4ef5ff2f9fa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_dbe7343a-7bb8-45c1-8e9b-fbaad43e6c9a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_0afcf211-334f-464c-8711-d4ef5ff2f9fa" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_dbe7343a-7bb8-45c1-8e9b-fbaad43e6c9a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_0afcf211-334f-464c-8711-d4ef5ff2f9fa" xlink:to="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_0f2f221b-51fc-4515-bd56-99507fdee55b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:to="loc_us-gaap_HedgingDesignationAxis_0f2f221b-51fc-4515-bd56-99507fdee55b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_0f2f221b-51fc-4515-bd56-99507fdee55b_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_0f2f221b-51fc-4515-bd56-99507fdee55b" xlink:to="loc_us-gaap_HedgingDesignationDomain_0f2f221b-51fc-4515-bd56-99507fdee55b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_c344701a-cee4-4ca1-b7ef-a612ede88d8d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_0f2f221b-51fc-4515-bd56-99507fdee55b" xlink:to="loc_us-gaap_HedgingDesignationDomain_c344701a-cee4-4ca1-b7ef-a612ede88d8d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_c24230c4-91ed-4181-8d9c-95fe57f3a4cd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_c344701a-cee4-4ca1-b7ef-a612ede88d8d" xlink:to="loc_us-gaap_NondesignatedMember_c24230c4-91ed-4181-8d9c-95fe57f3a4cd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_57cbd09d-e785-4fc3-a214-a02265980ddf" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CurrencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:to="loc_srt_CurrencyAxis_57cbd09d-e785-4fc3-a214-a02265980ddf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_57cbd09d-e785-4fc3-a214-a02265980ddf_default" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CurrencyAxis_57cbd09d-e785-4fc3-a214-a02265980ddf" xlink:to="loc_currency_AllCurrenciesDomain_57cbd09d-e785-4fc3-a214-a02265980ddf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CurrencyAxis_57cbd09d-e785-4fc3-a214-a02265980ddf" xlink:to="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_41fee20f-32fd-4811-9306-4229e70a1d02" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_EUR"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_EUR_41fee20f-32fd-4811-9306-4229e70a1d02" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_a0642b38-652c-4ff7-9bdb-5332940ecd3d" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_JPY"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_JPY_a0642b38-652c-4ff7-9bdb-5332940ecd3d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_47b81d8c-1c3e-4a10-a302-8cadc3cc1b5f" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_MXN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_MXN_47b81d8c-1c3e-4a10-a302-8cadc3cc1b5f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_ed171f15-1173-44cc-a660-258a642b33e5" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_GBP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_GBP_ed171f15-1173-44cc-a660-258a642b33e5" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_f4ed5c49-21ff-4c54-9b31-51c90b246423" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_HUF"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_HUF_f4ed5c49-21ff-4c54-9b31-51c90b246423" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_KRW_7aed3e76-9383-4727-b006-2825f5dc06ac" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_KRW"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_KRW_7aed3e76-9383-4727-b006-2825f5dc06ac" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_TWD_240ea38f-f6a9-430a-9cf4-14ac2bfe5381" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_TWD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_TWD_240ea38f-f6a9-430a-9cf4-14ac2bfe5381" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_79237561-a630-4e8a-9da8-84c5aa556610" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_CAD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_CAD_79237561-a630-4e8a-9da8-84c5aa556610" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD_0970f285-3dd4-4f41-b30e-7448cd2299f4" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_SGD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_SGD_0970f285-3dd4-4f41-b30e-7448cd2299f4" xlink:type="arc" order="8"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails" xlink:type="extended" id="if7d2edfe7f434229a348b06767e4e38e_DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_00290f2e-eba7-46b7-be5e-9f0f8a010209" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:to="loc_us-gaap_DerivativeAssets_00290f2e-eba7-46b7-be5e-9f0f8a010209" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_1af24e34-a6f9-4927-b82a-82e262450a34" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:to="loc_us-gaap_DerivativeLiabilities_1af24e34-a6f9-4927-b82a-82e262450a34" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_b58d9eed-002a-4796-b3e9-e9654a4272dc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:to="loc_us-gaap_HedgingDesignationAxis_b58d9eed-002a-4796-b3e9-e9654a4272dc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_b58d9eed-002a-4796-b3e9-e9654a4272dc_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_b58d9eed-002a-4796-b3e9-e9654a4272dc" xlink:to="loc_us-gaap_HedgingDesignationDomain_b58d9eed-002a-4796-b3e9-e9654a4272dc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_d0351444-22b4-468f-ae24-c6e706d7a84f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_b58d9eed-002a-4796-b3e9-e9654a4272dc" xlink:to="loc_us-gaap_HedgingDesignationDomain_d0351444-22b4-468f-ae24-c6e706d7a84f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_60c3b5f1-a0f8-47c4-a065-02bb04a27c7b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_d0351444-22b4-468f-ae24-c6e706d7a84f" xlink:to="loc_us-gaap_NondesignatedMember_60c3b5f1-a0f8-47c4-a065-02bb04a27c7b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_7e792482-8772-4751-a9bd-0f65c8ac8a73" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_7e792482-8772-4751-a9bd-0f65c8ac8a73" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_7e792482-8772-4751-a9bd-0f65c8ac8a73_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_7e792482-8772-4751-a9bd-0f65c8ac8a73" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_7e792482-8772-4751-a9bd-0f65c8ac8a73_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_7e792482-8772-4751-a9bd-0f65c8ac8a73" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_16d5f816-eba0-4ee7-9326-360e8be4edda" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:to="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_16d5f816-eba0-4ee7-9326-360e8be4edda" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccruedExpensesMember_482ce1aa-62ce-40eb-97c9-e921c32c6666" xlink:href="cgnx-20200628.xsd#cgnx_AccruedExpensesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:to="loc_cgnx_AccruedExpensesMember_482ce1aa-62ce-40eb-97c9-e921c32c6666" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsOffsettingAssetsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails" xlink:type="extended" id="i85b82777bfe4495186c4f1b11b5b2813_DerivativeInstrumentsOffsettingAssetsDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsDerivativeInstrumentsGainLossDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails" xlink:type="extended" id="ide3142690b3c440eb1ebe8c0c388093d_DerivativeInstrumentsDerivativeInstrumentsGainLossDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_ac11cf90-ef94-4e9c-af4c-0f329307329b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_dc5701e4-85a2-4800-98dc-394dea02305c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_ac11cf90-ef94-4e9c-af4c-0f329307329b" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_dc5701e4-85a2-4800-98dc-394dea02305c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_ac11cf90-ef94-4e9c-af4c-0f329307329b" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_be5c6ac1-5167-4c09-9901-53cf34855c49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:to="loc_us-gaap_HedgingDesignationAxis_be5c6ac1-5167-4c09-9901-53cf34855c49" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_be5c6ac1-5167-4c09-9901-53cf34855c49_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_be5c6ac1-5167-4c09-9901-53cf34855c49" xlink:to="loc_us-gaap_HedgingDesignationDomain_be5c6ac1-5167-4c09-9901-53cf34855c49_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_f7125f5a-ce9a-48ae-b49f-9851c9d4aa8c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_be5c6ac1-5167-4c09-9901-53cf34855c49" xlink:to="loc_us-gaap_HedgingDesignationDomain_f7125f5a-ce9a-48ae-b49f-9851c9d4aa8c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_d3e60238-953f-4e4a-ad3b-64ae99232dc4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_f7125f5a-ce9a-48ae-b49f-9851c9d4aa8c" xlink:to="loc_us-gaap_NondesignatedMember_d3e60238-953f-4e4a-ad3b-64ae99232dc4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_281abdba-28dc-4497-b3c3-c9b782a56ee8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_281abdba-28dc-4497-b3c3-c9b782a56ee8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_281abdba-28dc-4497-b3c3-c9b782a56ee8_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_281abdba-28dc-4497-b3c3-c9b782a56ee8" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_281abdba-28dc-4497-b3c3-c9b782a56ee8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_281abdba-28dc-4497-b3c3-c9b782a56ee8" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_a2139ea5-3eaa-4b46-94df-3c41625ba8ca" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_a2139ea5-3eaa-4b46-94df-3c41625ba8ca" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyGainLossMember_3addb9c5-b270-4dfe-9802-59d9b9cea2bc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyGainLossMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:to="loc_us-gaap_ForeignCurrencyGainLossMember_3addb9c5-b270-4dfe-9802-59d9b9cea2bc" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognition" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognition"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RevenueRecognition" xlink:type="extended" id="ib5492a26b2944b85a84fdf83892abd30_RevenueRecognition"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RevenueRecognitionTables" xlink:type="extended" id="i4d0171a8e4f64d1bb1d1758c3b727fa1_RevenueRecognitionTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails" xlink:type="extended" id="i3955a781be694516bbea84e1626383c0_RevenueRecognitionRevenueDisaggregatedbyGeographyDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_671679d1-c8f1-4588-8fbe-25377c55ccca" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_48f0b906-3618-4653-8a35-6e16af0476cb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_671679d1-c8f1-4588-8fbe-25377c55ccca" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_48f0b906-3618-4653-8a35-6e16af0476cb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_4de9af82-6643-4da1-98ec-b21a853c7055" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_671679d1-c8f1-4588-8fbe-25377c55ccca" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_4de9af82-6643-4da1-98ec-b21a853c7055" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_ecee59ce-f612-457f-8fc9-40da2b844f18" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4de9af82-6643-4da1-98ec-b21a853c7055" xlink:to="loc_srt_StatementGeographicalAxis_ecee59ce-f612-457f-8fc9-40da2b844f18" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_ecee59ce-f612-457f-8fc9-40da2b844f18_default" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_ecee59ce-f612-457f-8fc9-40da2b844f18" xlink:to="loc_srt_SegmentGeographicalDomain_ecee59ce-f612-457f-8fc9-40da2b844f18_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_ecee59ce-f612-457f-8fc9-40da2b844f18" xlink:to="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_de5d9ea6-d38a-4392-8d57-c19a19abdef6" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_srt_AmericasMember_de5d9ea6-d38a-4392-8d57-c19a19abdef6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_717de3ca-3bc1-43ff-a969-790db321773e" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_EuropeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_srt_EuropeMember_717de3ca-3bc1-43ff-a969-790db321773e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN_ac82fca8-c12e-463c-8f00-dd5ea4ecf821" xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_country_CN_ac82fca8-c12e-463c-8f00-dd5ea4ecf821" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AsiaExcludingChinaMember_9fcbac04-9a8d-4f6f-8401-9e0b8db88a94" xlink:href="cgnx-20200628.xsd#cgnx_AsiaExcludingChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_cgnx_AsiaExcludingChinaMember_9fcbac04-9a8d-4f6f-8401-9e0b8db88a94" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails" xlink:type="extended" id="icc61d314f1e548469d04e83136852856_RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_156ecef8-65b5-463a-a86c-9dc24c59170c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_9c0265f8-b3a1-4d0b-8fa8-ac501e037cdf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_156ecef8-65b5-463a-a86c-9dc24c59170c" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_9c0265f8-b3a1-4d0b-8fa8-ac501e037cdf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_28d555d9-bf67-4c9f-bc20-7262e3e0a6c5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_156ecef8-65b5-463a-a86c-9dc24c59170c" xlink:to="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_28d555d9-bf67-4c9f-bc20-7262e3e0a6c5" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_753ff850-5e02-4092-9059-f43b2c4bfbdf" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_28d555d9-bf67-4c9f-bc20-7262e3e0a6c5" xlink:to="loc_srt_ProductOrServiceAxis_753ff850-5e02-4092-9059-f43b2c4bfbdf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_753ff850-5e02-4092-9059-f43b2c4bfbdf_default" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_753ff850-5e02-4092-9059-f43b2c4bfbdf" xlink:to="loc_srt_ProductsAndServicesDomain_753ff850-5e02-4092-9059-f43b2c4bfbdf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_753ff850-5e02-4092-9059-f43b2c4bfbdf" xlink:to="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductsandServicesMember_08674d27-989a-466b-a47b-10dcae51f802" xlink:href="cgnx-20200628.xsd#cgnx_StandardProductsandServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:to="loc_cgnx_StandardProductsandServicesMember_08674d27-989a-466b-a47b-10dcae51f802" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationSpecificCustomerSolutionsMember_95eb1802-c3d1-4631-9596-509d7b6668ed" xlink:href="cgnx-20200628.xsd#cgnx_ApplicationSpecificCustomerSolutionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:to="loc_cgnx_ApplicationSpecificCustomerSolutionsMember_95eb1802-c3d1-4631-9596-509d7b6668ed" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails" xlink:type="extended" id="ifc1f1b0cf9e24a4c92d5861c48786c53_RevenueRecognitionAdditionalInformationDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionScheduleofAllowanceforCreditLossDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails" xlink:type="extended" id="if7bff79943d64517a6ddf1cef3d1d7b7_RevenueRecognitionScheduleofAllowanceforCreditLossDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionDeferredRevenueActivityDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails" xlink:type="extended" id="i626fd6117d73472fae861fc0b007b987_RevenueRecognitionDeferredRevenueActivityDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpense" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpense"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpense" xlink:type="extended" id="i883ec7cc8b574a2c988d6090c14ad9e9_StockBasedCompensationExpense"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseTables" xlink:type="extended" id="ic2909c28bf3c4d4f8640981138cd51f9_StockBasedCompensationExpenseTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseDetails" xlink:type="extended" id="ibf92641373124a86b4ea8354c3ba310a_StockBasedCompensationExpenseDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_80932163-84a1-4d39-871b-1f70a9a04353" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_80932163-84a1-4d39-871b-1f70a9a04353" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_fe65d87b-6de3-4b88-affa-753bfe23c478" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_fe65d87b-6de3-4b88-affa-753bfe23c478" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_2a1540c2-6fce-43aa-8f3a-f8a55549d2c0" xlink:href="cgnx-20200628.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_2a1540c2-6fce-43aa-8f3a-f8a55549d2c0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a1d5d06a-486d-479f-98af-ee0edc6800d3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a1d5d06a-486d-479f-98af-ee0edc6800d3" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_d21915d7-91c5-465d-8f62-cf6ca53fd267" xlink:href="cgnx-20200628.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_d21915d7-91c5-465d-8f62-cf6ca53fd267" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_e80541e0-8c76-4f79-8390-10cd0b12fe9b" xlink:href="cgnx-20200628.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_e80541e0-8c76-4f79-8390-10cd0b12fe9b" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0a443484-3fb4-485c-bc8e-a02413f3f9d8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0a443484-3fb4-485c-bc8e-a02413f3f9d8" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4c1100f3-99f2-4399-a7d5-fa3746425dab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4c1100f3-99f2-4399-a7d5-fa3746425dab" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7bc0395e-396b-4125-9755-23d678a166e6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7bc0395e-396b-4125-9755-23d678a166e6" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9018c51f-b2fc-418e-a995-1f059eea6fff" xlink:href="cgnx-20200628.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9018c51f-b2fc-418e-a995-1f059eea6fff" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_e2f7349c-8427-40fa-8687-bcb93056bae4" xlink:href="cgnx-20200628.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_e2f7349c-8427-40fa-8687-bcb93056bae4" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_c4b15eb3-25cd-4fa9-9237-1b52f3881942" xlink:href="cgnx-20200628.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_c4b15eb3-25cd-4fa9-9237-1b52f3881942" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d41a9f43-5be7-4401-9c02-561f9b3a48cc" xlink:href="cgnx-20200628.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d41a9f43-5be7-4401-9c02-561f9b3a48cc" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_40ab8ac6-9960-452e-bb8c-c9c5019f5d35" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_40ab8ac6-9960-452e-bb8c-c9c5019f5d35" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition_921ef74c-b97b-453f-bbcf-93e9e8fcf665" xlink:href="cgnx-20200628.xsd#cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition_921ef74c-b97b-453f-bbcf-93e9e8fcf665" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_7ca2728e-a72a-4781-8990-5795f1b0f982" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_7ca2728e-a72a-4781-8990-5795f1b0f982" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments_8e74db46-90b4-4c8a-8d3e-04dd8ed33bda" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments_8e74db46-90b4-4c8a-8d3e-04dd8ed33bda" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_07899bb3-e7e9-43c1-9f29-ba6ea66f5220" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_07899bb3-e7e9-43c1-9f29-ba6ea66f5220" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_702af9a4-6cc0-40ea-a008-ac9d34a04ce2" xlink:href="cgnx-20200628.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_702af9a4-6cc0-40ea-a008-ac9d34a04ce2" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_abf9c981-75b1-4cd0-8674-4c43ae3bb711" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:to="loc_srt_RangeAxis_abf9c981-75b1-4cd0-8674-4c43ae3bb711" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_abf9c981-75b1-4cd0-8674-4c43ae3bb711_default" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_abf9c981-75b1-4cd0-8674-4c43ae3bb711" xlink:to="loc_srt_RangeMember_abf9c981-75b1-4cd0-8674-4c43ae3bb711_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_abf9c981-75b1-4cd0-8674-4c43ae3bb711" xlink:to="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_bb316e38-f866-401f-80d7-1d39d176b10b" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:to="loc_srt_MinimumMember_bb316e38-f866-401f-80d7-1d39d176b10b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_4eab6562-2225-4df0-bd35-0eb3c19c0a95" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:to="loc_srt_MaximumMember_4eab6562-2225-4df0-bd35-0eb3c19c0a95" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_c491c059-bdd2-4be1-99e8-2cc5459f6494" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:to="loc_us-gaap_AwardTypeAxis_c491c059-bdd2-4be1-99e8-2cc5459f6494" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_c491c059-bdd2-4be1-99e8-2cc5459f6494_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_c491c059-bdd2-4be1-99e8-2cc5459f6494" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_c491c059-bdd2-4be1-99e8-2cc5459f6494_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_c491c059-bdd2-4be1-99e8-2cc5459f6494" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_2a0cc970-c7e6-4d17-ae0d-aab0b994966b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:to="loc_us-gaap_EmployeeStockOptionMember_2a0cc970-c7e6-4d17-ae0d-aab0b994966b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_15cd3e75-9e49-4429-83c3-59c6b99cfcc5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:to="loc_us-gaap_PerformanceSharesMember_15cd3e75-9e49-4429-83c3-59c6b99cfcc5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_14067ab2-5585-4838-8524-b8b09187c122" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_14067ab2-5585-4838-8524-b8b09187c122" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:to="loc_us-gaap_PlanNameAxis_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PlanNameAxis_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c" xlink:to="loc_us-gaap_PlanNameDomain_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_a46207fd-eb25-47db-92af-b23a74b071fa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PlanNameAxis_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c" xlink:to="loc_us-gaap_PlanNameDomain_a46207fd-eb25-47db-92af-b23a74b071fa" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GeneralStockOptionPlanMember_f4a22b6e-e990-4c84-aeef-e8d0eaf9bcff" xlink:href="cgnx-20200628.xsd#cgnx_GeneralStockOptionPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_a46207fd-eb25-47db-92af-b23a74b071fa" xlink:to="loc_cgnx_GeneralStockOptionPlanMember_f4a22b6e-e990-4c84-aeef-e8d0eaf9bcff" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails" xlink:type="extended" id="ifdebba32b90c44e69bd4939d758f20dd_StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails" xlink:type="extended" id="i86884265bfaf49c89065145b05ad6e70_StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails" xlink:type="extended" id="i74e6fbaecb9146a7b8fe1be9ce529ff1_StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_64b2d936-7049-4e37-ad5f-be5a0f4e8148" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_64b2d936-7049-4e37-ad5f-be5a0f4e8148" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0009bba8-c740-4eac-9a33-3fe0d7aead5d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0009bba8-c740-4eac-9a33-3fe0d7aead5d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_097993b6-9155-444b-9b08-d42f70617293" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_097993b6-9155-444b-9b08-d42f70617293" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd18e92a-7a37-4b2f-a53e-1943cf087d49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd18e92a-7a37-4b2f-a53e-1943cf087d49" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_1e262ae6-dc80-4e28-94c3-8508a389cdbc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_37a2c498-3a71-43f6-ad2b-353d7f3a868a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_37a2c498-3a71-43f6-ad2b-353d7f3a868a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_100bc361-42a4-4e24-8cec-446143b3be93" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_100bc361-42a4-4e24-8cec-446143b3be93" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_193bdee7-0295-4b04-bf98-e55408fc27be" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_193bdee7-0295-4b04-bf98-e55408fc27be" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_84a7535d-c70d-4aed-897e-b28a71fa88d4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_84a7535d-c70d-4aed-897e-b28a71fa88d4" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2817a165-0ae9-4700-a061-5fe0c4cc2772" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_9aa27af4-61a0-4866-9876-77694f795d95" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_9aa27af4-61a0-4866-9876-77694f795d95" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_8cae77f9-4973-4926-aaee-41b2feb25ea4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_9aa27af4-61a0-4866-9876-77694f795d95" xlink:to="loc_us-gaap_AwardTypeAxis_8cae77f9-4973-4926-aaee-41b2feb25ea4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_8cae77f9-4973-4926-aaee-41b2feb25ea4_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_8cae77f9-4973-4926-aaee-41b2feb25ea4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_8cae77f9-4973-4926-aaee-41b2feb25ea4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d0beeea6-1797-469b-b609-459eece7d642" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_8cae77f9-4973-4926-aaee-41b2feb25ea4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d0beeea6-1797-469b-b609-459eece7d642" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_1d7cb962-2850-4044-9a41-a68fa006104e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d0beeea6-1797-469b-b609-459eece7d642" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_1d7cb962-2850-4044-9a41-a68fa006104e" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails" xlink:type="extended" id="id5e4bdbb323a454eac26030d315599bd_StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8e701092-887d-4167-9c8a-0a35058364b1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_44e1ec6a-2e62-41a8-8c09-c79e5120141a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8e701092-887d-4167-9c8a-0a35058364b1" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_44e1ec6a-2e62-41a8-8c09-c79e5120141a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_69eac53c-de5d-4849-bb89-74fc2a6aeb6b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8e701092-887d-4167-9c8a-0a35058364b1" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_69eac53c-de5d-4849-bb89-74fc2a6aeb6b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_36f23d32-ab58-4354-a3cb-757c09ea765d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_69eac53c-de5d-4849-bb89-74fc2a6aeb6b" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_36f23d32-ab58-4354-a3cb-757c09ea765d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_36f23d32-ab58-4354-a3cb-757c09ea765d_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_36f23d32-ab58-4354-a3cb-757c09ea765d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_36f23d32-ab58-4354-a3cb-757c09ea765d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_36f23d32-ab58-4354-a3cb-757c09ea765d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsTotalMember_7030c240-5060-46af-952c-444c49a21ce7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsTotalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:to="loc_us-gaap_CostOfGoodsTotalMember_7030c240-5060-46af-952c-444c49a21ce7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_3a2af9e5-9230-43c1-8017-ac244db5c9c2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_3a2af9e5-9230-43c1-8017-ac244db5c9c2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_173a5547-2296-404f-9d50-48f6ebc702b0" xlink:href="cgnx-20200628.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_173a5547-2296-404f-9d50-48f6ebc702b0" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockRepurchaseProgram" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockRepurchaseProgram"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockRepurchaseProgram" xlink:type="extended" id="iaf15c0e9dca24f848f1246a6cd357d71_StockRepurchaseProgram"/>
  <link:roleRef roleURI="http://www.cognex.com/role/StockRepurchaseProgramDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockRepurchaseProgramDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/StockRepurchaseProgramDetails" xlink:type="extended" id="ife86959c360d48cbb44f16fdd6e538c9_StockRepurchaseProgramDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityClassOfTreasuryStockLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_707e31ee-97d9-4a96-a050-625292c5cafd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_707e31ee-97d9-4a96-a050-625292c5cafd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased_2e768800-ddbf-4536-9d2c-0ee867c4aaa4" xlink:href="cgnx-20200628.xsd#cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased_2e768800-ddbf-4536-9d2c-0ee867c4aaa4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramValue_c4868495-2b4a-4f97-a508-2ad241fc01dc" xlink:href="cgnx-20200628.xsd#cgnx_StockRepurchaseProgramValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_cgnx_StockRepurchaseProgramValue_c4868495-2b4a-4f97-a508-2ad241fc01dc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_a729662e-1e33-4b36-be39-1c61feda6aaa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_a729662e-1e33-4b36-be39-1c61feda6aaa" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_500dfc63-27b2-4f69-871a-4b7dfc3afec7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_500dfc63-27b2-4f69-871a-4b7dfc3afec7" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_d7b5b61a-4518-43c7-b0ca-a5f1c5e74ade" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_d7b5b61a-4518-43c7-b0ca-a5f1c5e74ade" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfTreasuryStockTable_9ae9ddb0-d630-4cf0-8fde-70f26345ca84" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ClassOfTreasuryStockTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_ClassOfTreasuryStockTable_9ae9ddb0-d630-4cf0-8fde-70f26345ca84" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_020e9e52-9d5b-4877-8ead-944dcc37a463" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ClassOfTreasuryStockTable_9ae9ddb0-d630-4cf0-8fde-70f26345ca84" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_020e9e52-9d5b-4877-8ead-944dcc37a463" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_020e9e52-9d5b-4877-8ead-944dcc37a463_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_020e9e52-9d5b-4877-8ead-944dcc37a463" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_020e9e52-9d5b-4877-8ead-944dcc37a463_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_020e9e52-9d5b-4877-8ead-944dcc37a463" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_2e1835ca-4ee7-42ae-82ca-884ef68a2257" xlink:href="cgnx-20200628.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_2e1835ca-4ee7-42ae-82ca-884ef68a2257" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_1749dba6-b597-40b1-9604-d3593899f643" xlink:href="cgnx-20200628.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_1749dba6-b597-40b1-9604-d3593899f643" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/Taxes" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Taxes"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/Taxes" xlink:type="extended" id="i92259e2afa914735ba903e78b72e5854_Taxes"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/IncomeTaxesTables" xlink:type="extended" id="icef497aaff774136a7950121e331a9c8_IncomeTaxesTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="extended" id="if2e826e5a1694bcbad2fbbc5821875ac_IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/IncomeTaxesDetails" xlink:type="extended" id="i573d455c136b4c16aa331d47ad73f803_IncomeTaxesDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxContingencyLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b328ed60-4487-403b-b87e-8971bb0ecfc6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b328ed60-4487-403b-b87e-8971bb0ecfc6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_83062d41-af82-4417-be2e-59cb13b07b56" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_83062d41-af82-4417-be2e-59cb13b07b56" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1322c538-4cee-404b-994b-6db7c2da0dc5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1322c538-4cee-404b-994b-6db7c2da0dc5" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_2550ff36-b7e0-4194-beb0-85c4966f669b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_2550ff36-b7e0-4194-beb0-85c4966f669b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_268148b7-96b5-4246-90df-1a4380a30917" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_268148b7-96b5-4246-90df-1a4380a30917" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear_cd42292b-d6dc-4bfc-828a-81c8c5a37d11" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear_cd42292b-d6dc-4bfc-828a-81c8c5a37d11" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInterestAndPenalties_6fb37d9a-c076-46e5-afb4-f90d0fe1f543" xlink:href="cgnx-20200628.xsd#cgnx_IncreaseDecreaseInterestAndPenalties"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_IncreaseDecreaseInterestAndPenalties_6fb37d9a-c076-46e5-afb4-f90d0fe1f543" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LiabilityForUncertainTaxPositions_45654b27-c073-4006-a7fc-1b54d4b2258b" xlink:href="cgnx-20200628.xsd#cgnx_LiabilityForUncertainTaxPositions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_LiabilityForUncertainTaxPositions_45654b27-c073-4006-a7fc-1b54d4b2258b" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6fe6a38f-bf3d-44c2-a9fc-34cc9a800311" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6fe6a38f-bf3d-44c2-a9fc-34cc9a800311" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_db5f7436-509f-4aca-82f3-afb713d7190a" xlink:href="cgnx-20200628.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_db5f7436-509f-4aca-82f3-afb713d7190a" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_3a438338-8261-4ed7-ad2d-c2fe44ff1769" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_3a438338-8261-4ed7-ad2d-c2fe44ff1769" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_103d0e0f-8a57-4098-95f6-2cc9302b1131" xlink:href="cgnx-20200628.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_103d0e0f-8a57-4098-95f6-2cc9302b1131" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_34264327-0d2d-4a42-af11-3a103cb2b977" xlink:href="cgnx-20200628.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_34264327-0d2d-4a42-af11-3a103cb2b977" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TaxyearsopentoexaminationbyInternalRevenueService_f37f91d3-1e64-4a42-8128-046ce5846cfb" xlink:href="cgnx-20200628.xsd#cgnx_TaxyearsopentoexaminationbyInternalRevenueService"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_TaxyearsopentoexaminationbyInternalRevenueService_f37f91d3-1e64-4a42-8128-046ce5846cfb" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities_c1988e87-9c48-4c07-87da-25517250de96" xlink:href="cgnx-20200628.xsd#cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities_c1988e87-9c48-4c07-87da-25517250de96" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent_601bba51-d83d-4d35-83e3-0c4260873250" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent_601bba51-d83d-4d35-83e3-0c4260873250" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxContingencyTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_3ac6c00d-0bae-4c30-90e5-45387af05155" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_3ac6c00d-0bae-4c30-90e5-45387af05155" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfAdoptionMember_3ac6c00d-0bae-4c30-90e5-45387af05155_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_3ac6c00d-0bae-4c30-90e5-45387af05155" xlink:to="loc_us-gaap_TypeOfAdoptionMember_3ac6c00d-0bae-4c30-90e5-45387af05155_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfAdoptionMember_179b268b-9946-4641-9a54-d67a0fd159fd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_3ac6c00d-0bae-4c30-90e5-45387af05155" xlink:to="loc_us-gaap_TypeOfAdoptionMember_179b268b-9946-4641-9a54-d67a0fd159fd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_eaec522b-a623-4256-9b7d-fb9bd2d59fef" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_eaec522b-a623-4256-9b7d-fb9bd2d59fef" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_eaec522b-a623-4256-9b7d-fb9bd2d59fef_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_eaec522b-a623-4256-9b7d-fb9bd2d59fef" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_eaec522b-a623-4256-9b7d-fb9bd2d59fef_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_eaec522b-a623-4256-9b7d-fb9bd2d59fef" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_7fc67b93-7a09-40f6-84e4-a6840f36d75a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:to="loc_us-gaap_ForeignCountryMember_7fc67b93-7a09-40f6-84e4-a6840f36d75a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_238ef43d-9205-4792-bf0a-40b8c63956ec" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:to="loc_us-gaap_DomesticCountryMember_238ef43d-9205-4792-bf0a-40b8c63956ec" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_c1958a36-c527-437f-9dff-d8b0e807ae2a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_c1958a36-c527-437f-9dff-d8b0e807ae2a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_c1958a36-c527-437f-9dff-d8b0e807ae2a_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_c1958a36-c527-437f-9dff-d8b0e807ae2a" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_c1958a36-c527-437f-9dff-d8b0e807ae2a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_c1958a36-c527-437f-9dff-d8b0e807ae2a" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_c82581a8-5bae-4935-929d-a2536f834bff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_c82581a8-5bae-4935-929d-a2536f834bff" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_3f7b8310-9dee-4d31-9ac8-527497bdabe7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_3f7b8310-9dee-4d31-9ac8-527497bdabe7" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageShares" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageShares"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/WeightedAverageShares" xlink:type="extended" id="id2396a500025421c85cdc6c6e4cc2694_WeightedAverageShares"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesTables" xlink:type="extended" id="id88ad9870291481cb8984efc1c444649_WeightedAverageSharesTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesDetails" xlink:type="extended" id="if5a859a383184e518a51f172573d9b37_WeightedAverageSharesDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_d573a941-1995-46e0-a641-b4d5913bb56b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_d573a941-1995-46e0-a641-b4d5913bb56b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_bc8d25fc-70ab-4f41-ae8c-52c8516a1047" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_bc8d25fc-70ab-4f41-ae8c-52c8516a1047" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e4e444b6-910a-4027-976b-45fc8e98ca32" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e4e444b6-910a-4027-976b-45fc8e98ca32" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_372e9930-a844-4122-8bc7-ea326d966908" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e4e444b6-910a-4027-976b-45fc8e98ca32" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_372e9930-a844-4122-8bc7-ea326d966908" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_372e9930-a844-4122-8bc7-ea326d966908_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_372e9930-a844-4122-8bc7-ea326d966908" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_372e9930-a844-4122-8bc7-ea326d966908_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_372e9930-a844-4122-8bc7-ea326d966908" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_e472ddf7-35cc-413e-a6e8-340f2257ce17" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:to="loc_us-gaap_EmployeeStockOptionMember_e472ddf7-35cc-413e-a6e8-340f2257ce17" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_b46ad94e-712e-496b-b1cf-d6aaeeeb24c1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:to="loc_us-gaap_RestrictedStockMember_b46ad94e-712e-496b-b1cf-d6aaeeeb24c1" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesCalculationofWeightedAverageSharesDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails" xlink:type="extended" id="ie465a820bd7e4b0380c094859a7c62ae_WeightedAverageSharesCalculationofWeightedAverageSharesDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a9a3a01a-1bc6-4c39-9d97-43c5869fb386" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma_9d915db7-0e41-485d-8639-198421221bb6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a9a3a01a-1bc6-4c39-9d97-43c5869fb386" xlink:to="loc_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma_9d915db7-0e41-485d-8639-198421221bb6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_574dc205-55d1-434f-81d4-9dbc60ed92e8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a9a3a01a-1bc6-4c39-9d97-43c5869fb386" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_574dc205-55d1-434f-81d4-9dbc60ed92e8" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringCharges" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringCharges"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RestructuringCharges" xlink:type="extended" id="iff2fd3bd591a41e9a93a367ef981cb70_RestructuringCharges"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesTables"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RestructuringChargesTables" xlink:type="extended" id="i3fe0334148fb4575b46705dfa98b09c0_RestructuringChargesTables"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RestructuringChargesNarrativeDetails" xlink:type="extended" id="i64ff74fbf6d544ea8711a5fb98f781cc_RestructuringChargesNarrativeDetails"/>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesSummaryDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesSummaryDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RestructuringChargesSummaryDetails" xlink:type="extended" id="i1f5b829f3ef1488faa0b484967763c5f_RestructuringChargesSummaryDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1_61fc603b-3800-4b5a-8930-f8a3cd609441" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCost1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:to="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1_61fc603b-3800-4b5a-8930-f8a3cd609441" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_aed04fad-7e8b-434d-8c4f-611782867624" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:to="loc_us-gaap_RestructuringCharges_aed04fad-7e8b-434d-8c4f-611782867624" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_2ae69b94-e0f0-4335-aca0-53a4ee22892f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_2ae69b94-e0f0-4335-aca0-53a4ee22892f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_656e9eb5-36eb-4c87-97c3-3f658610ab44" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_2ae69b94-e0f0-4335-aca0-53a4ee22892f" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_656e9eb5-36eb-4c87-97c3-3f658610ab44" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_656e9eb5-36eb-4c87-97c3-3f658610ab44_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_656e9eb5-36eb-4c87-97c3-3f658610ab44" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_656e9eb5-36eb-4c87-97c3-3f658610ab44_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_656e9eb5-36eb-4c87-97c3-3f658610ab44" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_b3c6cca2-6e5e-47ce-b170-d688f473fdb8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_b3c6cca2-6e5e-47ce-b170-d688f473fdb8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_77fa7d3f-d12e-4d79-8bb7-a062aafa79ab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:to="loc_us-gaap_ContractTerminationMember_77fa7d3f-d12e-4d79-8bb7-a062aafa79ab" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_4e2f324b-a339-433d-979a-a1b007d8ca8b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherRestructuringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:to="loc_us-gaap_OtherRestructuringMember_4e2f324b-a339-433d-979a-a1b007d8ca8b" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesActivityinRestructuringReserveDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails" xlink:type="extended" id="i200be045dfa14083b13b0ca8fbfe74a3_RestructuringChargesActivityinRestructuringReserveDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_632b5a46-3e3b-45fc-9580-19be74ede4bb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_632b5a46-3e3b-45fc-9580-19be74ede4bb" xlink:to="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_82b96bd1-6373-47f1-abe9-0a5221f56140" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringReserve_82b96bd1-6373-47f1-abe9-0a5221f56140" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_8d746d2e-4ebc-41ed-84e7-82b24e21c74a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringCharges_8d746d2e-4ebc-41ed-84e7-82b24e21c74a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring_c427fc4e-e7a9-4449-99d7-3246f5d91781" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_PaymentsForRestructuring_c427fc4e-e7a9-4449-99d7-3246f5d91781" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveSettledWithoutCash2_d03f2fde-4ae8-4cbd-b61d-535b538975c5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveSettledWithoutCash2"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringReserveSettledWithoutCash2_d03f2fde-4ae8-4cbd-b61d-535b538975c5" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment_27072295-93cc-4baa-b5f1-7976350d56ff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringReserveTranslationAdjustment_27072295-93cc-4baa-b5f1-7976350d56ff" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_2187d9da-c4b7-499e-9513-16bd2474ca20" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_244ba3c6-3f0e-474b-892e-105e679e1ec0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_632b5a46-3e3b-45fc-9580-19be74ede4bb" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_244ba3c6-3f0e-474b-892e-105e679e1ec0" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_b0abd23c-1acb-43e9-bf64-3a5b38044d4d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_244ba3c6-3f0e-474b-892e-105e679e1ec0" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_b0abd23c-1acb-43e9-bf64-3a5b38044d4d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_b0abd23c-1acb-43e9-bf64-3a5b38044d4d_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_b0abd23c-1acb-43e9-bf64-3a5b38044d4d" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_b0abd23c-1acb-43e9-bf64-3a5b38044d4d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_b0abd23c-1acb-43e9-bf64-3a5b38044d4d" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_5c7493d1-21d2-472f-acb7-80930b998896" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_5c7493d1-21d2-472f-acb7-80930b998896" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_92dad8fe-26d1-4d9f-b3a5-aecebd51c581" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:to="loc_us-gaap_ContractTerminationMember_92dad8fe-26d1-4d9f-b3a5-aecebd51c581" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_45e12e69-0cdb-438b-9fdf-a0993fbf9331" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherRestructuringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:to="loc_us-gaap_OtherRestructuringMember_45e12e69-0cdb-438b-9fdf-a0993fbf9331" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.cognex.com/role/SubsequentEvents" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SubsequentEvents"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/SubsequentEvents" xlink:type="extended" id="i42d6d204b1e945e5a53031e8b5c34575_SubsequentEvents"/>
  <link:roleRef roleURI="http://www.cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SubsequentEventsDetails"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/SubsequentEventsDetails" xlink:type="extended" id="i4fd1f944ce75473caca061429379a132_SubsequentEventsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_51e091c8-0448-4b2a-b743-b96fc6394369" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Dividends_ea25153d-c425-4cc7-b550-63ede8913c97" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Dividends"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_51e091c8-0448-4b2a-b743-b96fc6394369" xlink:to="loc_us-gaap_Dividends_ea25153d-c425-4cc7-b550-63ede8913c97" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_0508771b-b91b-43f8-bf51-ecabe0e7cfa5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_51e091c8-0448-4b2a-b743-b96fc6394369" xlink:to="loc_us-gaap_SubsequentEventTable_0508771b-b91b-43f8-bf51-ecabe0e7cfa5" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_0508771b-b91b-43f8-bf51-ecabe0e7cfa5" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56_default" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_ecdade86-5a94-4591-b6c2-80f82cacf666" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_ecdade86-5a94-4591-b6c2-80f82cacf666" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_e905616e-48c6-4866-84f9-e55d1585982c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_ecdade86-5a94-4591-b6c2-80f82cacf666" xlink:to="loc_us-gaap_SubsequentEventMember_e905616e-48c6-4866-84f9-e55d1585982c" xlink:type="arc" order="0"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>9
<FILENAME>cgnx-20200628_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2020 Workiva-->
<!--r:02407863-1aa6-4dd3-b32c-ad49ce80f53d,g:b1bfca50-59f6-49eb-9685-ec35a28640f4-->
<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_873564fc-b8da-4c91-83b8-a69767f063d2_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 (in shares)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_ec349f57-36bb-4b05-9084-5dbe6f99dc4e_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, in dollars</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OtherNonoperatingIncomeExpense_f0fa8eaa-eb2c-4de3-82a1-f8af691042bf_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_d1c2b381-f698-463e-9dde-3f189eb7d0a9_terseLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTaxAbstract" xlink: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 comprehensive income, net of tax:</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTaxAbstract" xlink: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 [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTaxAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract" xlink:to="lab_us-gaap_ComprehensiveIncomeNetOfTaxAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_8da91fac-4633-41cb-b111-03905784d2a8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_currency_HUF_e60c3eb4-341f-4e4b-b5ac-1de448c4def2_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">Hungary, Forint</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/2020/currency-2020-01-31.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_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_38a84d10-a68e-43fa-a8bc-350dc3c1a0f9_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Workforce reduction (as a percent)</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink: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, Inception to Date Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:to="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_99ceff05-5281-4db8-921d-39e7a84d805c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_fdfc8c1d-3a08-4c29-abbc-ab2181a0bc1d_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 (in dollars per share)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_InProcessResearchAndDevelopmentMember_ecfa57ef-e789-4c02-8108-892fd9e43fc9_terseLabel_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">In-process technologies</link:label>
    <link:label id="lab_us-gaap_InProcessResearchAndDevelopmentMember_label_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">In Process Research and Development [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InProcessResearchAndDevelopmentMember" xlink:to="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_country_CN_6e0c24e7-fa81-442e-9757-bab687e71fc8_terseLabel_en-US" xlink:label="lab_country_CN" xlink: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</link:label>
    <link:label id="lab_country_CN_label_en-US" xlink:label="lab_country_CN" xlink: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</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN" xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CN"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_CN" xlink:to="lab_country_CN" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_f5920f48-9bfe-40bd-99f1-3d960396a7ba_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueInputsLevel3Member_184577d3-2e36-418b-8f4c-c2fe08b80383_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">Fair Value, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StockRepurchasedDuringPeriodShares_4b93ce52-24a7-4889-9dea-f49a748ff581_negatedLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" 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 (in shares)</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_1dc38c3c-9265-4293-95f8-dcdcd0135982_verboseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" 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">Repurchase of common stock (in 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma_6e8a8f63-a930-4ad2-a9f1-8486f726b3a7_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma" xlink: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 Number Basic Shares Outstanding Adjustment, Pro Forma</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma" xlink: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 Basic Shares Outstanding Adjustment, Pro Forma</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma" xlink:to="lab_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherCurrentAssetsMember_ebfa509f-6950-4e41-928b-0fe22f532bfa_terseLabel_en-US" xlink:label="lab_us-gaap_OtherCurrentAssetsMember" xlink: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 Current Assets</link:label>
    <link:label id="lab_us-gaap_OtherCurrentAssetsMember_label_en-US" xlink:label="lab_us-gaap_OtherCurrentAssetsMember" xlink: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 Current Assets [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCurrentAssetsMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherCurrentAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherCurrentAssetsMember" xlink:to="lab_us-gaap_OtherCurrentAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_959cb501-d367-485d-bb4a-fecf3f952bdb_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink: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, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink: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, Amortization Expense, Fiscal Year Maturity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssets_f0965e6d-9d81-4af7-914c-2cf4c7cfd7e0_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">Derivative asset</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_ef1faf54-ddd8-4088-8cad-2504245d5458_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ProductWarrantyDisclosureTextBlock_867e0670-a10f-45f7-af89-18eb420f7249_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyDisclosureTextBlock" xlink: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_ProductWarrantyDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyDisclosureTextBlock" xlink: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 Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantyDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:to="lab_us-gaap_ProductWarrantyDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeMember_67d04437-cfcb-48b9-afc6-28beec12cc6a_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">Statistical Measurement [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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_us-gaap_LiabilitiesAndStockholdersEquityAbstract_9bd8e337-48f3-44d9-9306-b69da105f44b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_5c74eb80-9e70-4450-85db-292fd3612478_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_RestructuringCostAndReserveLineItems_82ca39cd-b06f-43ec-9cc2-58cbbba1e426_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DeferredIncomeTaxLiabilitiesNet_a8e0615a-7dbe-41bc-a27a-557fda42d6a9_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_e77302c0-bf48-490c-9faa-7c6d8ba9bea8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_CurrentFiscalYearEndDate_73678351-f020-48b7-8e90-04f537ab8c78_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/2019/dei-2019-01-31.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_OperatingIncomeLoss_c0320310-f144-4000-872e-19f31c6aa63f_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 (loss)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityAddressPostalZipCode_98713aa3-faed-4916-829d-798145c1f033_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/2019/dei-2019-01-31.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_LiabilitiesCurrent_20c384fd-b514-4eec-8490-b3948495ea66_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_PerformanceSharesMember_4860c8c8-c642-4d48-9a59-73317ab00eda_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_PrepaidExpenseAndOtherAssetsCurrent_784bbaba-90d3-4dac-a94d-dae824f6ddda_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_IncreaseDecreaseInterestAndPenalties_10acb38c-1e85-4f54-bdda-7ad6ecb85462_terseLabel_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInterestAndPenalties" xlink: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 included in reserve</link:label>
    <link:label id="lab_cgnx_IncreaseDecreaseInterestAndPenalties_label_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInterestAndPenalties" xlink: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 Interest And Penalties</link:label>
    <link:label id="lab_cgnx_IncreaseDecreaseInterestAndPenalties_documentation_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInterestAndPenalties" 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 interest and penalties.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInterestAndPenalties" xlink:href="cgnx-20200628.xsd#cgnx_IncreaseDecreaseInterestAndPenalties"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncreaseDecreaseInterestAndPenalties" xlink:to="lab_cgnx_IncreaseDecreaseInterestAndPenalties" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_dfbe8dff-4b6c-4678-a287-65c1547947ff_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 as of December 31, 2019 (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_9e3ccf9c-887e-4bf8-b43b-cce160414662_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 as of March 29, 2020 (in dollars per share)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_88fc21f7-2b39-4642-ae92-d6c0c6f9d1c9_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_PaymentsForRepurchaseOfCommonStock_6701ecf7-eb28-45a2-a67b-9d0522480788_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AssetsAbstract_7dba1deb-fe02-4ec9-97bf-a9a05f3b3a2a_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_0d364212-e9df-4c08-bb10-c1f11fed97a3_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccountingPoliciesAbstract_2711930a-b79d-4cd9-a943-da26abb0f3d5_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityShellCompany_3c7616a3-09a3-4aa3-b01d-6491d7004c34_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/2019/dei-2019-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_76bfb38a-437f-459d-9bae-cbdc733bbfaa_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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_CoverAbstract_41e6757c-5ef0-4c18-be0d-109d0ba84edb_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/2019/dei-2019-01-31.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_OperatingLeasePayments_546341be-5a64-4f62-81af-c67076fa00fb_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccountsPayableCurrent_5744ccec-a0ac-4b05-95b3-52965e1eaf23_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_GoodwillForeignCurrencyTranslationGainLoss_38780dfc-f106-4fb4-a7b6-942f147d3448_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_DocumentType_b16fd236-875d-4742-bdf2-7802f3559101_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/2019/dei-2019-01-31.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_cgnx_AsiaExcludingChinaMember_9e8091da-df6c-4d71-9d56-b278a5931d83_terseLabel_en-US" xlink:label="lab_cgnx_AsiaExcludingChinaMember" xlink: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</link:label>
    <link:label id="lab_cgnx_AsiaExcludingChinaMember_label_en-US" xlink:label="lab_cgnx_AsiaExcludingChinaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asia, Excluding China [Member]</link:label>
    <link:label id="lab_cgnx_AsiaExcludingChinaMember_documentation_en-US" xlink:label="lab_cgnx_AsiaExcludingChinaMember" 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">Asia, Excluding China [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AsiaExcludingChinaMember" xlink:href="cgnx-20200628.xsd#cgnx_AsiaExcludingChinaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AsiaExcludingChinaMember" xlink:to="lab_cgnx_AsiaExcludingChinaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_464b3a6f-487b-4a0a-98c9-182f06b99030_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_LongTermInvestmentsMember_80ab39ad-3f3e-4cbe-a526-23d8448e58f5_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</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-20200628.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_RetainedEarningsAccumulatedDeficit_16d69b25-b723-4d5b-8fb3-983a891fbb04_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OperatingLeaseRightOfUseAsset_12ab192f-fccf-40d1-b299-c4bda70782f0_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_d27895d6-42ab-4bd2-9405-561b02d5f5c6_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" 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">Operating lease, right-of-use asset</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_MoneyMarketFundsAtCarryingValue_e01e9f83-7ad2-4787-92fc-5ba160a41df6_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_SovereignDebtMember_e9674c61-f02b-4338-af44-e75250b295b1_terseLabel_en-US" xlink:label="lab_us-gaap_SovereignDebtMember" xlink: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_us-gaap_SovereignDebtMember_label_en-US" xlink:label="lab_us-gaap_SovereignDebtMember" xlink: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 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SovereignDebtMember" xlink:to="lab_us-gaap_SovereignDebtMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_1dda16ef-b2fc-477f-8ed8-cfd5c1a220ed_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">Outstanding, shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_a907b0d5-2a47-41e3-ada2-b1712c23fb4b_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">Outstanding, shares</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_bec5e1bc-1a17-430f-8f98-ef0e3243e05e_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">2023</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_f7d9da1e-f578-4eda-bf18-fc62aae7fab7_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_dbc64f4b-19b1-49ca-8a2e-271a475a0023_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink: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 compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink: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, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesFairValueAdjustment_c9642a37-fa98-42cb-a223-07ac7132d17b_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueAdjustment" xlink: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</link:label>
    <link:label id="lab_us-gaap_LiabilitiesFairValueAdjustment_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueAdjustment" xlink: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 Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueAdjustment" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesFairValueAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueAdjustment" xlink:to="lab_us-gaap_LiabilitiesFairValueAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredRevenue_c9fdc356-afab-4944-a5e8-f3533767f890_periodStartLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenue" 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 as of December 31, 2019</link:label>
    <link:label id="lab_us-gaap_DeferredRevenue_26b80d20-236a-4241-9dff-21e9cacbf509_periodEndLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenue" 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 as of June 28, 2020</link:label>
    <link:label id="lab_us-gaap_DeferredRevenue_label_en-US" xlink:label="lab_us-gaap_DeferredRevenue" xlink: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</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenue" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenue" xlink:to="lab_us-gaap_DeferredRevenue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_75d22d6c-ff7c-48db-b9e5-c42311d32c2f_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink: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 (usd per share)</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink: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, Per Diluted Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_HedgingDesignationDomain_5e86e1dd-e2c2-4026-a5c0-df52ae8de1c7_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_LeaseCost_c589bffc-48bf-4b11-88c8-cc41ef2cedb2_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease, cost</link:label>
    <link:label id="lab_us-gaap_LeaseCost_label_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseCost" xlink:to="lab_us-gaap_LeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock_ffe450cc-134f-4fab-8713-8afb3b425bce_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock" xlink: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 Allowance for Credit Loss Activity</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock" xlink: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 [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_ffbb3203-e10c-4aa2-a0a9-a3d28d5b3782_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink: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_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink: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 [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentQuarterlyReport_7781f05a-3ec8-4d5d-96c6-cc141fc30040_terseLabel_en-US" xlink:label="lab_dei_DocumentQuarterlyReport" xlink: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 Quarterly Report</link:label>
    <link:label id="lab_dei_DocumentQuarterlyReport_label_en-US" xlink:label="lab_dei_DocumentQuarterlyReport" xlink: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 Quarterly Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentQuarterlyReport" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentQuarterlyReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentQuarterlyReport" xlink:to="lab_dei_DocumentQuarterlyReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringReserveSettledWithoutCash2_07e1e6a8-2eea-440e-9335-af97397745ee_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserveSettledWithoutCash2" 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">Non-cash restructuring charges</link:label>
    <link:label id="lab_us-gaap_RestructuringReserveSettledWithoutCash2_label_en-US" xlink:label="lab_us-gaap_RestructuringReserveSettledWithoutCash2" xlink: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, Settled without Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveSettledWithoutCash2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveSettledWithoutCash2"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringReserveSettledWithoutCash2" xlink:to="lab_us-gaap_RestructuringReserveSettledWithoutCash2" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_b3a4b6ef-363a-4377-8854-7d7e0f890ab8_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 as of reporting date, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_CommonStockParOrStatedValuePerShare_80b62cbe-b332-4af8-97ab-1f41d77f93b6_verboseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" 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">Common stock, par value</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OtherLiabilitiesNoncurrent_4f59fbcc-1dd3-4da2-ab9a-f9834fdf15d4_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_DeferredIncomeTaxAssetsNet_c12cb98c-4e10-4d09-8bee-96abc6f6eccd_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_0332dd15-feb1-43e3-b126-91a604dfa047_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, in dollars per share</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_InvestmentIncomeNonoperating_70cac047-a1e7-4b36-9621-0eb21a5f0741_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_InventoryWorkInProcessNetOfReserves_2fdcfd17-eef5-4eb2-942f-d6ed9cbf4600_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_1b2f0632-31cd-43af-9889-aada6a18f7e4_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeAssetCollateralObligationToReturnCashOffset_069b2b5b-5edd-42b3-854b-7c6792702e0e_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">Gross amounts 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, Collateral, Obligation to Return Cash, Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_LiabilityForUncertainTaxPositions_71a26147-0bfc-4672-9da3-2cfbe25f3a23_terseLabel_en-US" xlink:label="lab_cgnx_LiabilityForUncertainTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liability for uncertain tax positions</link:label>
    <link:label id="lab_cgnx_LiabilityForUncertainTaxPositions_label_en-US" xlink:label="lab_cgnx_LiabilityForUncertainTaxPositions" xlink: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 Uncertain Tax Positions</link:label>
    <link:label id="lab_cgnx_LiabilityForUncertainTaxPositions_documentation_en-US" xlink:label="lab_cgnx_LiabilityForUncertainTaxPositions" 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">Liability for uncertain tax positions, total.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LiabilityForUncertainTaxPositions" xlink:href="cgnx-20200628.xsd#cgnx_LiabilityForUncertainTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LiabilityForUncertainTaxPositions" xlink:to="lab_cgnx_LiabilityForUncertainTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_1c27e37e-ebc6-4b0b-becf-839e9d19fbed_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</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_8c499a31-bb7a-457a-9860-1161f255d979_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, shares</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_InventoryNet_21bff742-db80-407a-9f22-5a2660349dfa_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_a7808773-29a9-49e2-a43d-1737f70d5486_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_UnbilledReceivablesCurrent_052baf8f-0096-4900-a669-92e170cb66d2_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_GViVenturesInc.Member_bf70e8e0-b25c-4167-a545-a7888c28eca3_terseLabel_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GVi Ventures, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_GViVenturesInc.Member_label_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GVi Ventures, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_GViVenturesInc.Member_documentation_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member" 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">GVi Ventures, Inc. [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GViVenturesInc.Member" xlink:href="cgnx-20200628.xsd#cgnx_GViVenturesInc.Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GViVenturesInc.Member" xlink:to="lab_cgnx_GViVenturesInc.Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_1638f897-fd75-4f60-802a-da64a0f17d03_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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueMeasurementFrequencyDomain_09b2138a-fadd-4e6e-92a8-b51adc78cfa0_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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityFileNumber_4830982c-8914-481a-a573-0252d13ac1f4_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/2019/dei-2019-01-31.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_BusinessAcquisitionAxis_18147e61-6c0d-4c53-8002-4cfd8a05899d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_SegmentGeographicalDomain_8826c9cf-1f99-45c6-971c-47ad788c5725_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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_currency_SGD_5566bddc-9883-4d50-9adf-e302a68542c0_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, Dollars</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/2020/currency-2020-01-31.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_StatementLineItems_1bea9e1d-1b3b-419f-8edb-bde63da24fe2_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncreaseDecreaseInDeferredIncomeTaxes_ed16b154-99ef-41b5-8980-a14937debb3d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_780a0e20-a8f7-486a-ab31-c41a55a38c5c_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink: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 Disclosures [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink: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 Disclosures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_eb7cd642-9d5e-49af-909a-69a27c0c9efe_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/2019/dei-2019-01-31.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_StatementTable_fa556067-ce74-4636-874e-1c3df60c708f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_062cc7f2-ebe7-4323-b17b-b12378fa33fa_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_810e9503-4df5-4d73-b4e5-1818b2e85163_verboseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" 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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_TypeOfRestructuringDomain_c6e2cecc-ada8-475c-a37b-dd25cc1cdcbf_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_RangeAxis_25fc89a6-cb04-4977-8082-7b769cdb0fe9_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">Statistical Measurement [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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_ForeignCurrencyGainLossMember_51ecf1ac-77a5-41f6-8e5b-308e1055c9cf_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyGainLossMember" xlink: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_ForeignCurrencyGainLossMember_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyGainLossMember" xlink: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 Gain (Loss) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyGainLossMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyGainLossMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyGainLossMember" xlink:to="lab_us-gaap_ForeignCurrencyGainLossMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_68c7258d-385b-4d17-b009-ea07be33accd_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">Gross amounts 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, Collateral, Right to Reclaim Cash, Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_3e1c78c8-d8a4-410f-b013-5c26b93534da_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" 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_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_d842577f-8842-4b19-aba8-111e2d1b9ad7_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax expense related to tax return filings (as a percent)</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink: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 Enacted Tax Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_560f04b7-3cca-4959-a533-5c1971f7c2f9_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery_ce453ec3-5319-4432-80db-9a39455e9ee1_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit loss on investments</link:label>
    <link:label id="lab_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery_label_en-US" xlink:label="lab_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery" xlink: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, Writeoff, after Recovery</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery" xlink:to="lab_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCountryMember_24178fbe-3f0c-431e-85fb-2fb51c2ce711_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_0d0749d1-8418-4808-89a3-f1167ab22df9_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink: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 Disclosures [Table]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink: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 Disclosures [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7d0be936-6861-4db9-a639-a2cb050bfa38_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_bf0758c3-3df8-4647-a74e-173dee256bf5_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 Hierarchy and NAV [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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_8a9dee26-0f3a-40f4-8edd-d6804c6c8378_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, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_SualabMember_a659446f-2635-40a0-b147-9aa41625db11_terseLabel_en-US" xlink:label="lab_cgnx_SualabMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sualab [Member]</link:label>
    <link:label id="lab_cgnx_SualabMember_label_en-US" xlink:label="lab_cgnx_SualabMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sualab [Member]</link:label>
    <link:label id="lab_cgnx_SualabMember_documentation_en-US" xlink:label="lab_cgnx_SualabMember" 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">Sualab</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabMember" xlink:href="cgnx-20200628.xsd#cgnx_SualabMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SualabMember" xlink:to="lab_cgnx_SualabMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramDomain_5e9a551a-529b-47c1-ada8-5d91f953511a_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_d50709ce-79ab-47fd-b256-bd9a005cf4e7_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 benefit related to stock options</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_970b5fec-125e-40cd-b7cb-81dcf4459d64_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Decrease in effective tax rate for difference between deduction for tax purposes and compensation cost recognized from stock option exercises</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_GoodwillRollForward_7ed0d01b-2dc1-4a91-8354-1e9613def184_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_bbd79b6b-afe4-49ce-8b84-53d0edb29034_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b89dd3d8-818e-48ee-aba3-004768f83c84_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_7c66bc8c-c6b6-4896-b2dc-29f7621f887c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_6467ceb1-56e8-44ef-b2e8-3bccb0201d7c_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink: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 Combination, Contingent Consideration, Liability</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink: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, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AmendmentFlag_410d660c-5d70-4d4e-9c81-aca979bc4692_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/2019/dei-2019-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_ac946f30-56fa-4840-aec0-42f9c94f8ac0_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_NetCashProvidedByUsedInOperatingActivities_86fcc6ad-920f-4bbf-a08b-383dd06ddd04_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_CashflowshedgesAbstract_0c67eb02-d2b9-4756-9a1b-c74d0da6a720_terseLabel_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract" xlink: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 flow hedges:</link:label>
    <link:label id="lab_cgnx_CashflowshedgesAbstract_label_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract" xlink: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 flows hedges [Abstract]</link:label>
    <link:label id="lab_cgnx_CashflowshedgesAbstract_documentation_en-US" xlink:label="lab_cgnx_CashflowshedgesAbstract" 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 flows hedges [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashflowshedgesAbstract" xlink:href="cgnx-20200628.xsd#cgnx_CashflowshedgesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CashflowshedgesAbstract" xlink:to="lab_cgnx_CashflowshedgesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_0bdebdd6-fec4-4576-9714-79d614369ce2_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueByMeasurementFrequencyAxis_ffd08cc6-5fd8-41bd-84c8-5e09bfa11be0_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AvailableForSaleSecuritiesDebtSecuritiesCurrent_5c60bb81-47f2-4a39-8ee6-ffb7400f73e6_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 $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_335061cc-ac8a-437e-8b8d-6f9872a5c5cb_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 vest</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-20200628.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_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2cd7f5f6-d116-4db2-b4f9-9b3214233a15_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_99cd8e75-4aff-4134-b2ef-5b324c9183a8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_currency_MXN_de1b9866-e832-482c-9e24-435ad7dc4f17_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">Mexico, Pesos</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/2020/currency-2020-01-31.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_DerivativeGainLossOnDerivativeNet_2f7c3226-0fd3-4812-bcda-1e37c2c33bcd_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 current operations</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OffsettingAssetsTableTextBlock_e8ef8331-eca8-4d51-9295-296c46ab92d7_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_7f1a4b34-a12c-488f-8c57-4c54cc0d3f29_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">Schedule of 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_48a40c21-6b30-4f23-8c14-c9e4c85f6c68_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, 12 months or greater</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_ExcessAndObsoleteInventoryCharges_f84acb94-76ca-4be3-b3e1-c721f05c87e1_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-20200628.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_srt_StatementGeographicalAxis_429decc8-c945-4c57-a7b3-a685d07a3b34_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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_SubsequentEventsTextBlock_63008ce2-a91b-43f3-952b-5f1215394772_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_8a4e4f6a-0e34-4754-8fb0-f0bf0e7196af_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink: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 plans (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink: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, Shares Issued in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_48d0135f-12aa-4b2c-97fd-52d7148f6b8c_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/2019/dei-2019-01-31.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_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_a3d91b56-481a-4e09-88fd-b1db08ee23c0_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_28f71955-0240-46aa-afc2-676869b1f6a5_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StatementOfCashFlowsAbstract_67af23f8-9965-4127-81fd-309526f6a048_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_WeightedAverageNumberDilutedSharesOutstandingAdjustment_135dddd9-ac89-4f8c-99e8-f106cc3bf4cf_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 equity awards</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 Diluted Shares Outstanding Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_f0915cf2-8518-4c54-8aae-3659a22d4224_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink: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 External Customers by Products and Services</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink: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 External Customers by Products and Services [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink:to="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_e6c1f894-9977-4b4a-b7b2-22bf0b61b1f1_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink: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 Location [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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AllowanceForDoubtfulAccountsReceivableCurrent_8554c54a-c776-46d9-b0ea-00a74f568bb9_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reserves for accounts receivable</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink: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, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_22fb367d-b427-43f2-96ee-1470414b379f_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink: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 Location [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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_c651403a-8a9a-429e-804f-dd6e8998f22a_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">2021</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_NetCashProvidedByUsedInFinancingActivitiesAbstract_cfc80237-433f-4fdd-9f7c-2051a232a926_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_425836bd-5f3a-4c76-ad29-cb27dc1ccd64_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ReceivablesPolicyTextBlock_93ed5684-de16-4a8e-a475-04cb398f2e33_terseLabel_en-US" xlink:label="lab_us-gaap_ReceivablesPolicyTextBlock" xlink: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_ReceivablesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ReceivablesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Receivable [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesPolicyTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReceivablesPolicyTextBlock" xlink:to="lab_us-gaap_ReceivablesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_73a71423-9ae9-4c5a-ab7d-2d1cc53af6e5_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AmortizationOfIntangibleAssets_30da592d-3d23-4275-a689-e49dc9a82ee9_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_CustomerContractsAndRelationshipsMember_ebe7c0e9-1a4b-481c-9f3a-a803be5efe32_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 relationships</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-20200628.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_dei_EntityCurrentReportingStatus_14397e52-8739-4715-a093-5f9b3c7819b2_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/2019/dei-2019-01-31.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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_362800de-5ec0-4fed-9aa4-efff601f78bf_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">2022</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OtherAssetsNoncurrent_c6018ee7-e041-451f-a10a-1bafa996659a_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_PlanNameAxis_4f1c6ee2-7319-422d-836b-cf4bb22301ce_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EffectiveIncomeTaxRateReconciliationTaxCredits_f99ca5dd-78bc-4c76-a558-bdfac219d362_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 credit</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_df9b4e96-c89a-4ed1-8129-dad0def2dd8a_terseLabel_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink: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 classified an noncurrent deferred tax assets</link:label>
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_label_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink: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 benefit shown as a reduction to noncurrent deferred tax assets</link:label>
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_documentation_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" 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 benefit shown as a reduction to noncurrent deferred tax assets as a result of net operating loss carryforward, a similar tax loss, or a tax credit carryforward.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:href="cgnx-20200628.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:to="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_86f956f2-f636-486d-b87d-cd6460fde85e_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 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_Assets_501a00b0-9338-497d-9388-3594f1e82477_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_d27387f9-4099-4fbb-a505-a49b471f3311_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 as of December 31, 2019 (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_ce3aee43-04c7-4d2b-8edd-ee010051b679_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 as of March 29, 2020 (in shares)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FiniteLivedIntangibleAssetsNet_1bc79084-9542-497c-96c6-d2c14d7f30a0_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink: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_FiniteLivedIntangibleAssetsNet_15e6afd3-bb52-4e42-a37e-c99c05969d7d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_ac726d8b-0143-4761-94ba-8a3db20aa285_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, in dollars per share</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccruedIncomeTaxesCurrent_c1cfd966-6618-4d3b-98ce-e2e176c28a50_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_SubsequentEventTypeAxis_ee17bbb5-735e-4b61-8c53-4f4408ea1557_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_a1434fcd-51b6-4f84-ad9a-744b4b085d1b_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 ($836) and $239 in the three-month periods and net of tax of ($1,788) and $507 in the six-month periods, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_0da4a5f7-4e5c-4a16-a644-534aaf28d5f0_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" 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 of ($82)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_c63a8f9b-1b49-4bb5-9a2d-3dd62cf0cfde_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_currency_KRW_462e6faa-d6bf-4ea2-8d8f-0e9d71a26aa4_terseLabel_en-US" xlink:label="lab_currency_KRW" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Korean Won</link:label>
    <link:label id="lab_currency_KRW_label_en-US" xlink:label="lab_currency_KRW" xlink: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 (South), Won</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_KRW" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_KRW"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_KRW" xlink:to="lab_currency_KRW" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_01bd1168-a579-41b3-b7a6-ed240a77e72a_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">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-20200628.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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_22b1228d-4d86-4d48-af45-2fda299ca299_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-20200628.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_dei_EntitySmallBusiness_ea430068-40d0-46a3-9a86-a37a8357d4cf_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/2019/dei-2019-01-31.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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_38519046-bfe8-4711-b10a-de679e8a1ef1_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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_currency_JPY_b1bd464b-0f1e-4c69-beb2-f1907784eb8a_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</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/2020/currency-2020-01-31.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_dei_EntityFilerCategory_aa897770-44cf-4aed-8cea-4d85ef8bc5fe_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/2019/dei-2019-01-31.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_us-gaap_ShortTermInvestmentsMember_b96b189b-f62f-43ff-b808-a89e8996c183_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ApplicationSpecificCustomerSolutionsMember_4719a6ef-22e8-42bd-bccf-b1adad211b61_terseLabel_en-US" xlink:label="lab_cgnx_ApplicationSpecificCustomerSolutionsMember" xlink: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_ApplicationSpecificCustomerSolutionsMember_label_en-US" xlink:label="lab_cgnx_ApplicationSpecificCustomerSolutionsMember" xlink: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-Specific Customer Solutions [Member]</link:label>
    <link:label id="lab_cgnx_ApplicationSpecificCustomerSolutionsMember_documentation_en-US" xlink:label="lab_cgnx_ApplicationSpecificCustomerSolutionsMember" 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-Specific Customer Solutions [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationSpecificCustomerSolutionsMember" xlink:href="cgnx-20200628.xsd#cgnx_ApplicationSpecificCustomerSolutionsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ApplicationSpecificCustomerSolutionsMember" xlink:to="lab_cgnx_ApplicationSpecificCustomerSolutionsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_063607e2-cb29-4255-b822-e74c2062f129_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_ProductOrServiceAxis_006578d1-d244-4ce3-bf88-98fa3ca1e08f_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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_Liabilities_84f9031f-56dd-468f-9981-609a7ff2553f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncomeTaxContingencyLineItems_b1d3e858-720e-4c68-9a80-d7e8aa840279_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxContingencyLineItems" xlink: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 Contingency [Line Items]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxContingencyLineItems_label_en-US" xlink:label="lab_us-gaap_IncomeTaxContingencyLineItems" xlink: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 Contingency [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxContingencyLineItems" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxContingencyLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems" xlink:to="lab_us-gaap_IncomeTaxContingencyLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CAD_e817645a-75fa-4a82-857a-206ee82a091c_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">Canada, Dollars</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/2020/currency-2020-01-31.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_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_21843016-9405-4877-94c2-3803c0123c59_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_19177d13-22d1-40d6-8500-a7b3f250c8d2_verboseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" 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">Reserve for income taxes classified as a noncurrent iability</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityAddressCityOrTown_fe178d9d-7fd3-45c7-af09-1553f1bcfac9_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/2019/dei-2019-01-31.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_us-gaap_InvestmentTypeAxis_279c6656-cd2f-4b0b-a53f-f5bdb3d5f311_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OtherRestructuringMember_01c845e0-4310-4316-b769-a9990b52927e_terseLabel_en-US" xlink:label="lab_us-gaap_OtherRestructuringMember" xlink: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 associated costs</link:label>
    <link:label id="lab_us-gaap_OtherRestructuringMember_9a090de3-3e2e-424d-a42a-94af628057b4_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherRestructuringMember" 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">Other Associated Costs</link:label>
    <link:label id="lab_us-gaap_OtherRestructuringMember_label_en-US" xlink:label="lab_us-gaap_OtherRestructuringMember" xlink: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 Restructuring [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherRestructuringMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherRestructuringMember" xlink:to="lab_us-gaap_OtherRestructuringMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_e953cead-2a16-40eb-acdc-55602338c559_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_10f29dd6-26cb-4f53-98d4-4a58803b8b4c_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, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_31929c75-8074-42f0-bbd4-78f9c2b89998_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">Total 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueInputsLevel1Member_7cc2416f-1eb7-471e-8bb4-9a9f2202540a_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 Prices in Active Markets for Identical Assets (Level 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_IncreaseDecreaseInInventories_ac154135-870c-4fef-bcf1-36fa83cd9c09_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" 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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_3849d49b-47d6-4e3c-bd61-f9183ba12e55_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, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_DocumentFiscalYearFocus_c085e38b-3bec-4537-97ec-ce5a53dccb4c_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/2019/dei-2019-01-31.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_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_910cfd8f-1008-4267-8d30-7bff8ada624e_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncreaseDecreaseInAccountsPayable_41be4dd2-9704-4014-ada6-884a141e22f3_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_47c016ae-4a11-48bd-8a8d-cc6ea3b814ea_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">Shares (in thousands)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_InventoryRawMaterialsNetOfReserves_5cf109d4-c28c-438c-87e9-5a85ae9df999_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_9faa114d-a931-4f01-9db8-cfe940c8b16d_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" 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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_CommonStockDividendsPerShareCashPaid_f5641230-7f33-4d88-bd82-160468b32429_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 (usd 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AdditionalPaidInCapitalMember_1564e99a-fd13-42fc-a380-3aecc5b82eba_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_e347fc49-ab3f-43ec-acc4-d034cf798df8_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Carrying value operating lease right-of-use assets impaired</link:label>
    <link:label id="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_label_en-US" xlink:label="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink: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, Carrying Value Of Impaired Asset</link:label>
    <link:label id="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_documentation_en-US" xlink:label="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" 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, Right-Of-Use Asset, Carrying Value Of Impaired Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:href="cgnx-20200628.xsd#cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:to="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_f9db70b9-85ca-41dc-a8e5-414028a6700f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DisaggregationOfRevenueLineItems_ea350da7-34a3-4eb0-9647-aade1e8b0dcc_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear_c6194618-88d7-49de-8757-238a84133ee2_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear" xlink: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 reserves for income taxes, net of deferred tax benefit</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear" xlink: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 Examination, Increase (Decrease) in Liability from Prior Year</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear" xlink:to="lab_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_950b6dc3-74f3-4f97-831e-8031d138081c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeLiabilities_aa5df9b6-0436-441b-9c6a-6bcc5ff81eda_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">Derivative liability</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_da9c54fd-42aa-4f5b-a7fb-be63553dd17f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6b64653-6e8c-471e-90d3-9c9be5e134fe_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ForeignCurrencyContractAssetFairValueDisclosure_53d889cd-46fb-4ec8-bb78-df7ca8348fd1_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_RevenueFromContractWithCustomerAbstract_402a9993-827d-4097-a621-7737d4e9e47d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_64187dc0-f354-46a8-b62c-e520dfde8344_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CashAndCashEquivalentsLineItems_74d9be54-ab1a-4774-bae0-955b63d0636f_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink: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 [Line Items]</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsLineItems_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink: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 [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems" xlink:to="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_6e836264-9317-435b-91be-432e8d3c30aa_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_cb1d0294-eed7-4b64-9ff8-242cfc6e9a73_terseLabel_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink: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_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_label_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink: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, Payments, Due Year Six</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_documentation_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" 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, Liability, Payments, Due Year Six</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink:href="cgnx-20200628.xsd#cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink:to="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_ad1255f1-fadd-408e-962b-86a0954d9502_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_ffcab789-ea36-4f4b-a5de-cc5b5e18d181_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-20200628.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_SubsequentEventMember_18de9d0e-e2e3-4532-8e2d-a7e5053d8ff2_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EffectiveIncomeTaxRateReconciliationOtherAdjustments_ac8ed68e-a41c-4369-8cbe-0729c040bf6c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_e81bcdff-674c-46f5-952c-791a593fa5f7_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">Outstanding, shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2e588901-aba0-47d5-9847-0c6b2be7d203_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">Outstanding, shares</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DomesticCountryMember_aa1a813a-ab65-48c2-ac33-7cf395f910eb_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities_af954e5e-0ad9-4240-96d7-0f48883dcd64_terseLabel_en-US" xlink:label="lab_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities" xlink: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 years open to examination by various taxing authorities for other entities</link:label>
    <link:label id="lab_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities_label_en-US" xlink:label="lab_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities" xlink: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 Examination Years Under Examination Other Entities</link:label>
    <link:label id="lab_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities_documentation_en-US" xlink:label="lab_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities" 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">The tax year(s) being audited in connection with the income tax examination for other entities.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities" xlink:href="cgnx-20200628.xsd#cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities" xlink:to="lab_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_393a1093-03a2-4c67-bdd2-3b6aaa5430a1_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward" xlink: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, Allowance for Credit Loss [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward" xlink: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 [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_995ffed9-830f-461f-ad8a-07aef1a952cf_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_RevenueFromExternalCustomersByGeographicAreasTableTextBlock_0f326c13-9f8e-426c-a02d-0821bfe693c3_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink: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 External Customers by Geographic Areas</link:label>
    <link:label id="lab_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink: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 External Customers by Geographic Areas [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:to="lab_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_fafe4343-9c1a-4a1e-a0dc-f10bbd79d944_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-20200628.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_dei_DocumentPeriodEndDate_3cb0ae3c-7d51-4e7f-a82c-ebbec52f5b6b_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/2019/dei-2019-01-31.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_dei_EntityRegistrantName_a96c613f-2052-4f24-acf3-89811366161f_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/2019/dei-2019-01-31.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_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_3b59f78c-c2e1-4777-9d6b-987efe621e28_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_IncomeStatementAbstract_98f2f36c-ffa1-4636-a36d-f3c66bcd7347_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccumulatedOtherComprehensiveIncomeMember_ea64d24a-fa84-4a2b-87b0-c8f282310356_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_StandardProductsandServicesMember_e2e7010c-a2ab-47e5-8c29-bf6b3ec2b418_terseLabel_en-US" xlink:label="lab_cgnx_StandardProductsandServicesMember" xlink: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_StandardProductsandServicesMember_label_en-US" xlink:label="lab_cgnx_StandardProductsandServicesMember" xlink: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 Products and Services [Member]</link:label>
    <link:label id="lab_cgnx_StandardProductsandServicesMember_documentation_en-US" xlink:label="lab_cgnx_StandardProductsandServicesMember" 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 Products and Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductsandServicesMember" xlink:href="cgnx-20200628.xsd#cgnx_StandardProductsandServicesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StandardProductsandServicesMember" xlink:to="lab_cgnx_StandardProductsandServicesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_67b08843-8113-4eb1-b95c-e5e6bc61dc2b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OperatingLeaseLiabilityNoncurrent_e7b37096-4b03-4ba6-bc56-926fa7f1ab91_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">Operating Lease, Liability, Noncurrent</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_6d7e5750-e10f-4aa5-90d6-32fcc8764802_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" 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">Operating lease, liability, noncurrent</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_3bded2bf-ddbf-48c6-a564-db7a6fa58ae0_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">2024</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_dc10a82b-5e83-4587-931f-f8c192007e4d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_InterestReceivable_6585fb47-8c7f-46e1-90ba-70d8370947e8_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">Accrued 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AssetsCurrentAbstract_3cb3763a-8f90-408b-b037-9ca221975113_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncomeTaxAuthorityDomain_ca914309-09ce-4262-8c3f-8feac86039b6_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition_1f5e2420-47ec-4807-81bf-217faad81f55_terseLabel_en-US" xlink:label="lab_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" xlink: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 period to be recognized</link:label>
    <link:label id="lab_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition_label_en-US" xlink:label="lab_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" xlink: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, Nonvested Awards, Compensation Not yet Recognized, Period for Recognition</link:label>
    <link:label id="lab_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition_documentation_en-US" xlink:label="lab_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" 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, Nonvested Awards, Compensation Not yet Recognized, Period for Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" xlink:href="cgnx-20200628.xsd#cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" xlink:to="lab_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Dividends_02303d04-c435-49c9-90eb-73da6993eff2_terseLabel_en-US" xlink:label="lab_us-gaap_Dividends" xlink: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 (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_Dividends_label_en-US" xlink:label="lab_us-gaap_Dividends" xlink: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</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Dividends" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Dividends"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Dividends" xlink:to="lab_us-gaap_Dividends" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_91f5019b-f0f7-4b04-ada6-cf843fa43ba5_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-20200628.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_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_d116220b-de87-45be-bc19-3af3bc447286_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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ComprehensiveIncomeNetOfTax_1e83c4d8-dc38-40f1-80a8-c30337226c23_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_57c0187c-b7d8-410a-be12-18c23fdcaa4c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent_3cab87f9-c072-490f-9863-cfd69934e063_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" xlink: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 tax rate excluding discrete items (as a percent)</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" xlink: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, Excluding Discrete Items, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" 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, Excluding Discrete Items, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_5d3c8482-7ae5-4927-8426-14fb52a1d7f0_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 United States Federal Statutory Corporate Tax Rate to 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_RestructuringReserveRollForward_bfe98515-eb9e-4cdc-b8bd-291582957fe2_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_PaymentsToAcquirePropertyPlantAndEquipment_14efcc5d-ebf9-4dfe-a5d1-b2ef3504031f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_IncomeTaxAuthorityAxis_caf605f7-56f1-47cf-8b5c-c256ede1a8fe_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityTaxIdentificationNumber_e10a4673-fb08-4c6d-af7a-1fa9c26af9ae_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/2019/dei-2019-01-31.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_BusinessCombinationContingentConsiderationLiability_683f8811-1dd5-4049-afc7-37b216a84a90_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contingent consideration liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink: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, Contingent Consideration, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_09b560d9-d5cb-4efc-be3e-2358ec4304fb_periodStartLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" 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 as of December 31, 2019</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_02354349-9841-4315-8a23-bb49d29758be_periodEndLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" 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 as of June 28, 2020</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_12d47f1e-0496-4c88-9cf4-8a973be34f16_totalLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" 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 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StockRepurchaseProgramAuthorizedAmount1_eb26688e-0141-4313-8bad-0ee52bf36953_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">Authorized common stock to be repurchased</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_1c1f668f-f303-4cf4-92a2-ce5b250c2178_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 annual 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-20200628.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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_514ff201-efb7-4e5c-a762-186234f58085_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" 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 (loss) before income tax expense (benefit)</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink: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 Equity Method Investments, Income Taxes, Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_TradingSymbol_a32e4885-466a-4c52-b064-68c716d58de5_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/2019/dei-2019-01-31.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_MovementInStandardProductWarrantyAccrualRollForward_8d364a58-d7dd-4256-86aa-40854b7ba932_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_HedgingDesignationAxis_dfea84d9-4d5d-4008-903c-e4957f3ac82e_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DisaggregationOfRevenueTable_d9350d12-0949-4ad0-a1bb-23ac34351831_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_70a1b2f3-2dc7-4489-b3e0-a0e778a73249_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses" xlink: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 on sale of investments</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses" xlink: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, Gross Realized Losses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_74ca3766-5e0d-49cb-9403-de82698760b3_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink: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 asset impairment charges</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink: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, Impairment Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:to="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_aebfd095-f985-48cd-a8ef-2635f40587ac_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</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-20200628.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_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_092f2629-348c-434d-9b79-824b166c84e3_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">Schedule of 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ProductWarrantiesDisclosuresAbstract_bb0520b2-70b5-4a3c-a56d-6d7bdbb13f79_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantiesDisclosuresAbstract" xlink: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 Warranties Disclosures [Abstract]</link:label>
    <link:label id="lab_us-gaap_ProductWarrantiesDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_ProductWarrantiesDisclosuresAbstract" xlink: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 Warranties Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantiesDisclosuresAbstract" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantiesDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantiesDisclosuresAbstract" xlink:to="lab_us-gaap_ProductWarrantiesDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_c8b20209-5a17-4606-a591-c61e42bfd670_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_85e0f44b-a29e-4a67-805f-7220e16adf7b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_a00100ee-200f-48db-b9df-0b6dcf69fe65_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-20200628.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_us-gaap_DeferredRevenueRevenueRecognized1_1b4c4788-71b5-43a1-ab2b-7611e4c2c8c7_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueRevenueRecognized1" 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</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueRevenueRecognized1_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueRevenueRecognized1" xlink: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, Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRevenueRecognized1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueRevenueRecognized1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueRevenueRecognized1" xlink:to="lab_us-gaap_DeferredRevenueRevenueRecognized1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_77cdb37b-40e6-4217-ad7c-93d2b61e6dcb_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">Schedule of Restructuring Charges</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_713d0920-dc0a-41b0-b551-27231657d377_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IntangibleAssetsDisclosureTextBlock_5276b9ea-a14c-4d86-86a0-ddfbf211ab36_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_d46aff39-3bc6-4f6a-b068-e7fb242f5118_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">Remaining maturity of foreign currency derivatives (up to)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_TaxyearsopentoexaminationbyInternalRevenueService_20ae6f4e-248e-45af-b6ce-14a4bf93e33d_terseLabel_en-US" xlink:label="lab_cgnx_TaxyearsopentoexaminationbyInternalRevenueService" xlink: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 years open to examination by Internal Revenue Service</link:label>
    <link:label id="lab_cgnx_TaxyearsopentoexaminationbyInternalRevenueService_label_en-US" xlink:label="lab_cgnx_TaxyearsopentoexaminationbyInternalRevenueService" xlink: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 years open to examination by Internal Revenue Service</link:label>
    <link:label id="lab_cgnx_TaxyearsopentoexaminationbyInternalRevenueService_documentation_en-US" xlink:label="lab_cgnx_TaxyearsopentoexaminationbyInternalRevenueService" 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">Tax years open to examination by Internal Revenue Service</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TaxyearsopentoexaminationbyInternalRevenueService" xlink:href="cgnx-20200628.xsd#cgnx_TaxyearsopentoexaminationbyInternalRevenueService"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxyearsopentoexaminationbyInternalRevenueService" xlink:to="lab_cgnx_TaxyearsopentoexaminationbyInternalRevenueService" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_e4ab332a-109c-49b0-85ec-b210eb095e1a_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">Unbilled revenue</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_LesseeOperatingLeasesTextBlock_ea8d503b-49ab-4303-a409-d7d2d4eb701c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueDisclosuresAbstract_3793fc7c-9f49-4fec-89e5-30c1306b587b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_IncreaseDecreaseInDeferredRevenue_80bc147f-b304-4793-bf2d-90a837a018bc_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink: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_IncreaseDecreaseInDeferredRevenue_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink: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 Revenue</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_a459927f-805a-4b0d-84af-30f2cc08f28f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncreaseDecreaseInAccruedTaxesPayable_6703c29d-d3b3-46f8-881a-8ade8c07b4bd_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedTaxesPayable" xlink: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_IncreaseDecreaseInAccruedTaxesPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedTaxesPayable" xlink: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 Taxes Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedTaxesPayable" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedTaxesPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedTaxesPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedTaxesPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CityAreaCode_fe6eef3c-d6da-4c85-b855-1b866e839e11_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/2019/dei-2019-01-31.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_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_6a62a0c8-28e9-4962-9d09-7eb78140a44a_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink: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, by Arrangement, Disclosure</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink: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, by Arrangement, Disclosure [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueByArrangementDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:to="lab_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_c5f08ce8-9250-417f-9a19-e5c38a534ca6_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_c61d7d8f-fdf7-4ee7-9f35-2f4de386100f_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">Share-based Payment Arrangement, Expensed and Capitalized, Amount [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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AvailableForSaleSecuritiesDebtSecurities_116c4eda-24f9-4b2c-b8ff-85dbad1ac8d5_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">Financial assets at fair value</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_1edd6ce0-7a11-4b0b-afac-a6e78b002ed2_verboseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" 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">Fair value</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_8018ba26-3466-4768-a93c-20dfbdc94e7d_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_6cd44848-1726-4245-8ce1-4dafa17d4a76_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_4a8116bc-5c34-4e28-b5a3-0f34f65b05aa_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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StatementEquityComponentsAxis_d19c8e19-3e73-4a68-918e-783386a6c495_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_Security12bTitle_34b2e4e3-8ce0-4863-9140-6e6a7bd4d99f_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/2019/dei-2019-01-31.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_AvailableForSaleSecuritiesGrossRealizedGains_cf0f3084-48e8-454f-b340-615cca25d2e2_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains" xlink: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 on sale of investments</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains" xlink: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, Gross Realized Gains</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedGains"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockMember_ea2cb3aa-da6e-4b45-9f74-22efad219f6b_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ProductWarrantyAccrualPayments_34daf73a-3bf1-476f-a1ec-75d1bed9a50f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_InventoryFinishedGoodsNetOfReserves_2637f496-cfa6-4730-b57f-9ea1375cfbe4_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_24fead0c-e489-4409-b571-0c1343b85d0d_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">Share-based Payment Arrangement [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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_MinimumMember_cdc5916f-e507-48e7-a9e3-e270656b0928_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</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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_BalanceSheetLocationDomain_b6ac0e7f-713a-44ed-9b84-36605c481d98_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_3135b563-4889-425f-b725-8dfa63f3ae98_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink: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 Allowance for Credit Loss Activity</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink: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 [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:to="lab_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_df6863ef-fab5-4b75-82b5-bd020e050b02_terseLabel_en-US" xlink:label="lab_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems" xlink: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 External Customer [Line Items]</link:label>
    <link:label id="lab_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_label_en-US" xlink:label="lab_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems" xlink: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 External Customer [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems" xlink:to="lab_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_cfd3ff5d-1b8b-448c-b148-84d24f57462d_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_19feea0c-329f-4c41-872a-24178a11450b_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" 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">Operating lease, liability, current</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ProductWarrantyAccrual_d1067bc8-4565-40fb-a4b8-e319c89a2a73_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_d7b6f236-fbf0-435a-9e8f-02d598644ec2_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_EuropeMember_87e57f3e-9227-48df-8be5-a886b6d0de9d_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</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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_IncomeTaxAuthorityNameDomain_e8243913-c18a-469b-adf4-3d3239ac4d9e_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_dcbbb6ad-b350-4797-a198-0d93b165abe4_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_44ab12b5-7b56-422c-a8d5-effdc3c0d34c_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 (in dollars per share)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_90d2a35e-89dd-4c86-a4a1-430286d725b5_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AssetBackedSecuritiesMember_40fb26f2-44f6-4533-9c8b-1e837dd1bfb7_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeInstrumentsGainLossLineItems_1594feed-ba8b-46f3-a219-df8072e719be_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccruedIncomeTaxes_0e998f8e-663c-4e04-b366-5b0b8984175b_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxes" xlink: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_AccruedIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxes" xlink: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</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxes" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxes" xlink:to="lab_us-gaap_AccruedIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_a73153cd-5f07-4415-b4b0-cc9e322a984f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CorporateBondSecuritiesMember_6f3f54cc-7ab1-4866-b10a-cbff6b9eae37_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_bce077d5-c8d6-449c-99e1-c562f9bde2cb_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, in dollars per share</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix_434184f0-8db5-4fc4-8d67-0ee383ca89e1_terseLabel_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" xlink: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_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix_label_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" xlink: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, Payments, Due after Year Six</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix_documentation_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" 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, Liability, Payments, Due after Year Six</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" xlink:href="cgnx-20200628.xsd#cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" xlink:to="lab_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AccruedExpensesMember_8cefb74e-6172-40a1-ba67-30d6a487a353_terseLabel_en-US" xlink:label="lab_cgnx_AccruedExpensesMember" xlink: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_cgnx_AccruedExpensesMember_label_en-US" xlink:label="lab_cgnx_AccruedExpensesMember" xlink: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 Expenses [Member]</link:label>
    <link:label id="lab_cgnx_AccruedExpensesMember_documentation_en-US" xlink:label="lab_cgnx_AccruedExpensesMember" 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">Accrued expenses.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccruedExpensesMember" xlink:href="cgnx-20200628.xsd#cgnx_AccruedExpensesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AccruedExpensesMember" xlink:to="lab_cgnx_AccruedExpensesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_19a15a9e-ef47-4230-b7cb-0a1839b113aa_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_bb2d9a19-9a2c-4afb-8508-cecbd8fa8708_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StockholdersEquityNoteDisclosureTextBlock_6ca49c24-4f9d-44d7-a661-c888c12dacf7_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink: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</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stockholders' Equity Note Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_21bc5460-8f7e-43aa-a1b8-29ccc2e07e0a_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" xlink: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 Intrinsic Value (in&#160;thousands)</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" xlink: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 Additional Disclosures1 [Abstract]</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" 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">ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1 [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" xlink:href="cgnx-20200628.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_90a22e35-f363-4307-ad28-c48df0394b5b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_OutstandingForwardContractsTableTextBlock_22bd354b-5016-4b0b-a48b-e34104e3fd87_terseLabel_en-US" xlink:label="lab_cgnx_OutstandingForwardContractsTableTextBlock" xlink: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 Forward Contracts Table</link:label>
    <link:label id="lab_cgnx_OutstandingForwardContractsTableTextBlock_label_en-US" xlink:label="lab_cgnx_OutstandingForwardContractsTableTextBlock" xlink: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 Forward Contracts [Table Text Block]</link:label>
    <link:label id="lab_cgnx_OutstandingForwardContractsTableTextBlock_documentation_en-US" xlink:label="lab_cgnx_OutstandingForwardContractsTableTextBlock" 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">Outstanding forward contracts table.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OutstandingForwardContractsTableTextBlock" xlink:href="cgnx-20200628.xsd#cgnx_OutstandingForwardContractsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OutstandingForwardContractsTableTextBlock" xlink:to="lab_cgnx_OutstandingForwardContractsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_4e5c4f3f-74dc-473b-8c83-e14f9c495abc_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_86c75b82-2e6c-4a86-879e-085fba7872cd_verboseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" 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">Remainder of fiscal 2020</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink: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, Remainder of Fiscal Year</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_GBP_a17266e9-0e2a-4194-b725-d0126914bbd5_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">United Kingdom, Pounds</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/2020/currency-2020-01-31.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_AdditionalPaidInCapitalCommonStock_759b1546-8746-41b7-8530-5371df024f8f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_RestructuringReserveTranslationAdjustment_4a5cb3eb-fe4f-481b-a550-83fd9e490d75_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserveTranslationAdjustment" 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 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_7edbfa46-69ba-4f2e-8181-756388b31033_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 annual forfeiture rate for unvested options for all other employees</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-20200628.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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_6614eaaa-8b7e-4c74-b7de-bc9b63a7a51c_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-20200628.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_us-gaap_SubsequentEventTypeDomain_7b7e7220-ac61-4b80-a1e0-d79d77faad3d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeTable_69dc6282-b94f-4849-bff5-d60e5c1697d7_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StatementOfStockholdersEquityAbstract_a5c3cfef-9e8f-409f-81a7-ddcdfaeb2568_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_7e92051d-cca9-491b-9408-ac6c7d43df59_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">Weighted average discount rate</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AssetsFairValueDisclosureAbstract_551fa10c-61b8-4d8a-9033-5f2e2b2d127c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_e4b88b2c-8f70-4d22-a9f6-296862baf003_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 as of reporting date, shares</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AllowanceForDoubtfulAccountsReceivableRollforward_722138ea-b9d9-41c2-8ed5-89c5b39a36a8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_f83b98a5-1324-49ce-8086-8aa0a5784dea_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">Weighted- Average Exercise Price</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ContractTerminationMember_3cf7918d-d807-495e-bd3e-9b98c5adfa73_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 costs</link:label>
    <link:label id="lab_us-gaap_ContractTerminationMember_5879bc11-71fd-4a50-bf28-0149abd97996_verboseLabel_en-US" xlink:label="lab_us-gaap_ContractTerminationMember" 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">Contract Termination Costs</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_092de3ba-f874-47fc-892f-b54f196d6e62_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revaluation of contingent consideration</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink: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, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_fb34c030-f8eb-4f4c-924e-b5800094ff72_verboseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" 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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_PaymentsOfDividendsCommonStock_e335de80-565b-4a4e-b940-5703fd3db4bd_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock" 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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ResearchAndDevelopmentExpenseMember_50e6ceb1-edf4-4e3d-89df-3f3a7613cae5_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_NondesignatedMember_4b355a1b-0499-4eb5-8058-0e88d294ea2d_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccountsReceivableNetCurrent_6dec99f2-5729-4ed0-9730-0328af855fb0_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, less reserves of $2,235 and $1,821 in 2020 and 2019, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_LesseeOperatingLeaseLiabilityPaymentsDue_d4a3bdd2-b4b5-462f-9701-d929d4624b8f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_b8ac95b0-74e4-470d-b7cd-1ecbbae1237b_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" 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 credit loss on investments</link:label>
    <link:label id="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_2be87155-8d0b-43d5-b7d0-0c7d80039a0d_negatedLabel_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" 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 credit (recovery) loss on investments</link:label>
    <link:label id="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_2d084c54-f459-4017-887b-86f75662492c_terseLabel_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reclassification of credit loss on investments</link:label>
    <link:label id="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_label_en-US" xlink:label="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" xlink: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-than-temporary Impairment Loss, Debt Securities, Available-for-sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" xlink:to="lab_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringReserve_2c1022c2-ee9d-4971-a454-2f358e1358fc_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">Balance at beginning of period</link:label>
    <link:label id="lab_us-gaap_RestructuringReserve_17c53304-86bc-42ab-ba20-395a7ebaf01a_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">Balance at end of period</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OneTimeTerminationBenefitsMember_3aa86e67-c766-4b02-81c3-1fca5090fa1d_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</link:label>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_59fcce79-372e-4f4f-a1c2-759f53de7ccd_verboseLabel_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" 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">One-time Termination Benefits</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AdjustmentsForNewAccountingPronouncementsAxis_f24f58f0-8093-40b6-a579-312d3307e358_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink: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 Standards Update [Axis]</link:label>
    <link:label id="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_label_en-US" xlink:label="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink: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 [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="lab_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLeaseIncome_d557f2ec-4d7f-487a-acb3-2d0459f7e562_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLeaseIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rental income</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLeaseIncome_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLeaseIncome" xlink: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, Lease Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLeaseIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLeaseIncome" xlink:to="lab_us-gaap_OperatingLeaseLeaseIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringChargesMember_f3d7b6e0-a35b-4260-b582-7d5148b4d146_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringChargesMember" xlink: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_RestructuringChargesMember_label_en-US" xlink:label="lab_us-gaap_RestructuringChargesMember" xlink: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 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringChargesMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringChargesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringChargesMember" xlink:to="lab_us-gaap_RestructuringChargesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_5352a057-66c1-4722-91fa-3f776ba55c8b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_a3c9d513-164d-4d92-9e11-612bdf004767_terseLabel_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink: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) to compensation expense</link:label>
    <link:label id="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_label_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink: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 In Compensation Expense Due To Revised Estimated Forfeiture Rates</link:label>
    <link:label id="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_documentation_en-US" xlink:label="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" 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_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:href="cgnx-20200628.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:to="lab_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TrademarksMember_f30fc1e8-dd47-422c-9811-59435ad1f61a_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CompensationRelatedCostsGeneralTextBlock_3912ddc4-633a-4834-b903-36aae588e1e5_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationRelatedCostsGeneralTextBlock" xlink: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_CompensationRelatedCostsGeneralTextBlock_label_en-US" xlink:label="lab_us-gaap_CompensationRelatedCostsGeneralTextBlock" xlink: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 Related Costs, General [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationRelatedCostsGeneralTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CompensationRelatedCostsGeneralTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationRelatedCostsGeneralTextBlock" xlink:to="lab_us-gaap_CompensationRelatedCostsGeneralTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_370453cc-e9a5-4803-b6a9-ad3dadb226f8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_PaymentsForRestructuring_596b3de1-5f18-4062-873f-96f3ca436407_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_Cash_4d32ccf6-808b-4cbd-a1c7-8f6148a84662_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_Goodwill_cd365ddf-a62f-4953-8025-64a305b12207_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_7cf44b0f-e5e6-4454-b1b0-496d48f80cdc_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">Balance as of December 31, 2019</link:label>
    <link:label id="lab_us-gaap_Goodwill_0a8cb92b-d673-4c05-bb97-52235b8532f3_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">Balance as of December 31, 2019</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfAvailableForSaleSecuritiesLineItems_3b4f982e-787d-4cc2-b4bf-15b0ca80832b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_CertificateOfDepositFairValueDisclosure_cd222897-1878-4730-978c-f3038890e92e_terseLabel_en-US" xlink:label="lab_cgnx_CertificateOfDepositFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Certificate Of Deposit, Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_CertificateOfDepositFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_CertificateOfDepositFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Certificate Of Deposit, Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_CertificateOfDepositFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_CertificateOfDepositFairValueDisclosure" 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">Certificate Of Deposit, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CertificateOfDepositFairValueDisclosure" xlink:href="cgnx-20200628.xsd#cgnx_CertificateOfDepositFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CertificateOfDepositFairValueDisclosure" xlink:to="lab_cgnx_CertificateOfDepositFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_cf6f1da3-e50f-481d-9d85-6c70120efdd3_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">1 year or less</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_1f8d8ddb-43f2-44e6-b881-c147ebf6ba9d_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, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_f2bb281b-3f68-4536-b9fd-db1e59be3dd1_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, 12 months or greater</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_e6ebdfa5-bd7e-4d04-a655-b73312ed9a61_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_RepurchaseProgramOctober2018Member_d692ca74-4bbf-4bee-828d-3e37140f8d64_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</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-20200628.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_DerivativeFairValueOfDerivativeAsset_9b9d79ae-1d19-4469-9b53-bb178d12bdfe_verboseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" 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">Gross amounts of recognized assets</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, Fair Value, Gross Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_11864219-8b20-4bb1-bb03-676f3cc67e86_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-20200628.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_us-gaap_CapitalizedContractCostGross_cd6bf0e8-daae-4687-abd9-f0d1c216f9fc_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">Costs to fulfill contract</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_FairValueInputsLevel2Member_39b9caf7-12ff-4f32-8435-0d469af2bdca_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 Other Observable Inputs (Level 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_GeneralStockOptionPlanMember_d9343d99-4ebb-4648-871e-34b88c7f6bb9_terseLabel_en-US" xlink:label="lab_cgnx_GeneralStockOptionPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">General Stock Option Plan</link:label>
    <link:label id="lab_cgnx_GeneralStockOptionPlanMember_label_en-US" xlink:label="lab_cgnx_GeneralStockOptionPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">General Stock Option Plan [Member]</link:label>
    <link:label id="lab_cgnx_GeneralStockOptionPlanMember_documentation_en-US" xlink:label="lab_cgnx_GeneralStockOptionPlanMember" 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">General stock option plan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GeneralStockOptionPlanMember" xlink:href="cgnx-20200628.xsd#cgnx_GeneralStockOptionPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GeneralStockOptionPlanMember" xlink:to="lab_cgnx_GeneralStockOptionPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_e3557f4f-f608-4126-8fad-e1b6b22aae3d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfGoodwillTextBlock_eca879bf-5c9d-4fc2-ae2a-dbb6092fd682_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">Schedule 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EquityAbstract_b5282582-8a2b-456b-b3ad-308b6dadc51c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeAssetNotionalAmount_bea2e631-dad3-416c-99fb-fbe6e21fdf43_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">Outstanding forward contracts</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityCentralIndexKey_b9cca06f-e4d7-4732-9920-a02b947c60b7_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/2019/dei-2019-01-31.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_ContractWithCustomerLiabilityCurrent_6b715e9b-f4ad-4bbc-8339-da27c0d885ca_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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityEmergingGrowthCompany_819a040e-d775-4002-b679-42c8c220a41e_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 Emerging Growth Company</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/2019/dei-2019-01-31.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_SubsequentEventLineItems_ce42d989-3f51-490b-a80e-3de232b097eb_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_343b479e-6094-40f4-80f7-1755ae8044d5_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, in dollars per share</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_b7744f9e-84ea-4ef5-96a3-1b753d9a81d3_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_ad07614f-8c16-451c-a6fa-1b0cd883d5fc_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">Schedule of Intangible Assets, Future Amortization Expense</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_7b76ccef-8fa5-44e9-9672-0196dd93a782_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 (shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_59214397-82be-45b8-8ea2-8f64a72a0ab8_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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment_b3092c8e-1642-4f9b-8176-b86476960293_terseLabel_en-US" xlink:label="lab_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment" xlink: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_DeferredRevenueForeignCurrencyExchangeAdjustment_label_en-US" xlink:label="lab_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment" xlink: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, Foreign Currency Exchange Adjustment</link:label>
    <link:label id="lab_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment_documentation_en-US" xlink:label="lab_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment" 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 Revenue, Foreign Currency Exchange Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment" xlink:href="cgnx-20200628.xsd#cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment" xlink:to="lab_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_d6d25caf-6a44-4c45-ae0f-d6208de92b6d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_81ae9ffc-7dd1-4cab-8a8f-a2d266184579_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 (in shares)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_28d86619-f9bf-489e-ac48-46cc32fc3f1c_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">Weighted average remaining lease term</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_RevenueCommissionersIrelandMember_64d92d6e-dfa0-400b-93e3-cfecb894dee1_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StateAdministrationOfTaxationChinaMember_c7069dfe-aec3-45c4-812e-73c2ee0afdc0_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CommonStockValueOutstanding_51266ac2-5c5f-4c38-abeb-2fde2fe4e216_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, $.002 par value &#8211; Authorized: 300,000 shares in 2020 and 2019, respectively, issued and outstanding: 173,047 and 172,440 shares in 2020 and 2019, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_NetCashProvidedByUsedInFinancingActivities_6dc1fe1d-7114-406e-9e8f-05cee0fa0952_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 provided by (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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AllocatedShareBasedCompensationExpense_ae3d89b1-12e1-41c2-9359-775a0e4a3c26_terseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink: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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_BalanceSheetLocationAxis_aa9a24fa-f327-49b7-82b2-a37fd5ab6e12_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_adc38424-b952-4f0d-b3f6-e5ab45edbf2a_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" xlink: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 foreign currency translation adjustment</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" xlink: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, Foreign Currency Transaction and Translation Gain (Loss), Arising During Period, Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermInvestments_d0ab7a4f-c734-469e-9ee8-30e104c5b40f_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 $461,948 and $431,633 in 2020 and 2019, respectively, allowance for expected credit losses of $75 and $0 in 2020 and 2019, respectively</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_GoodwillAndIntangibleAssetsDisclosureAbstract_63250026-a9f4-42c2-87cf-8e2fb5a6e533_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_FiniteLivedIntangibleAssetsLineItems_18e355b6-0dbb-4edf-a23f-8f21713e03e4_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">Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_a4a08e50-7908-4dd0-8b63-7996a5d29228_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">2022</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_8a36833b-e89d-4b33-b091-8fd5fea307b0_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">Tax benefit from 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_currency_TWD_db9f7d10-8ec0-4d28-89bf-51e2dd3da04c_terseLabel_en-US" xlink:label="lab_currency_TWD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Taiwanese Dollar</link:label>
    <link:label id="lab_currency_TWD_label_en-US" xlink:label="lab_currency_TWD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Taiwan, New Dollars</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_TWD" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_TWD"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_TWD" xlink:to="lab_currency_TWD" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostExpectedCost1_fe8f4b33-bb00-40ef-933f-5181a3f05373_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostExpectedCost1" xlink: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 Amount Expected to be Incurred</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostExpectedCost1_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostExpectedCost1" xlink: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, Expected Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCost1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1" xlink:to="lab_us-gaap_RestructuringAndRelatedCostExpectedCost1" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_AllCurrenciesDomain_6c4cd179-2b2c-4c5c-8711-b50e4e48e699_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/2020/currency-2020-01-31.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_SubsequentEventTable_0bf2d597-9a88-49a9-8dc4-a731fe4bfb3e_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_a06c8370-3a9c-4827-bf9b-8d4a5b897b9b_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" xlink: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 rate adjustment</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_b40410d2-d492-4def-8e13-52a220eac278_verboseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" 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 rate adjustment (as a percent)</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" xlink: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 Rate Adjustments, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" 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 Rate Adjustments, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockOptionPlanExpense_9e7dc4d2-f769-4115-a12c-2da31e76c80b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_7b9a73f4-f2c6-465f-9c9e-1840bdd7b4ea_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 (in dollars per share)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_InventoryDisclosureAbstract_4a35df51-da33-451e-b322-7a12d65ae8a5_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_957fd192-41d6-4b75-94a5-9ca19c649f07_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_CommonStockSharesIssued_722f8eb6-df1f-4d71-abe3-eaa2623c192d_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</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_0075a84c-fe51-4225-9be5-1ca18c18d1fd_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 (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_440a04ca-4738-4d27-930b-eaf96a879cf1_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">Ending Balance (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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CashAndCashEquivalentsAtCarryingValue_e368d29d-0d08-4c26-aebe-1f4a0a3bf447_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_074dda55-02d9-4517-aa37-3c659eef96d6_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_887ae2f6-daf9-4fdc-9d32-ab0149788a15_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable" xlink: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 External Customers by Products and Services [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable" xlink: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 External Customers by Products and Services [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable" xlink:to="lab_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock_e4c687aa-ac61-4ea5-aed6-0c0efb210bdd_terseLabel_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" xlink: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_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock_label_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" xlink: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 Text Block]</link:label>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock_documentation_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" 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_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" xlink:href="cgnx-20200628.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" xlink:to="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_1d8d1c74-464a-401c-b798-7ba0d550b844_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareRepurchaseProgramAxis_79463bc0-bddf-4837-8a5d-3a7c1f5f32a4_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncreaseDecreaseInAccountsReceivable_940b2336-d027-42d8-bcfe-5ac11a8f4bd2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" 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 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_StockholdersEquity_e4cb1396-68ac-488f-9c1c-6ffa09cb488c_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_1c780cc2-d3d1-4f96-9c1c-0562092506bb_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_e9d3ffa2-2be3-4685-8cf9-1d2e81c47c27_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">Ending 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">Stockholders' Equity Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StatementOfIncomeAndComprehensiveIncomeAbstract_d8c50d2e-fe6a-4cc8-961e-b862fa4d84d6_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DistributionRightsMember_4c565818-d440-4772-81ce-890182518b7a_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_LiabilitiesAndStockholdersEquity_2422891b-8c09-41c6-a445-98d158594723_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_AccumulatedOtherComprehensiveIncomeLossNetOfTax_2c3d2a1a-1c8c-420b-b407-26d3e71b5e75_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_IncomeTaxDisclosureTextBlock_3ed43748-839e-4771-bd59-107f8e1bd212_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueByFairValueHierarchyLevelAxis_8ebce2e4-7dc5-4a4b-990f-ca6204875635_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_RestrictedStockUnitsRSUMember_2a61fa87-8425-45e2-82b8-2cba840e256f_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)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OperatingLeaseCost_054d4651-99bd-4279-8de0-23b5f4327bbb_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink: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, cost</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseCost_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink: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, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseCost" xlink:to="lab_us-gaap_OperatingLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_1af7db0c-7ead-499a-ab22-a72243b09228_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">2024</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_FinancialInstrumentAxis_43a0bcb6-122b-4745-a0c0-fb5b3fbccd5a_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_TypeOfAdoptionMember_45a02b1b-2efd-42c1-b119-eb6c95ffc27f_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfAdoptionMember" xlink: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 Standards Update [Domain]</link:label>
    <link:label id="lab_us-gaap_TypeOfAdoptionMember_label_en-US" xlink:label="lab_us-gaap_TypeOfAdoptionMember" xlink: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 [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfAdoptionMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfAdoptionMember" xlink:to="lab_us-gaap_TypeOfAdoptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_07273159-8251-4cd9-9a2d-d2457b95cdd7_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">Anti-dilutive securities excluded from computation of earnings per share (shares)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ProceedsFromSaleMaturityAndCollectionsOfInvestments_1726eb11-aeb1-4579-a24e-fbf0d133481c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EquityComponentDomain_77b243be-7d06-4fca-87d1-1633f70f402e_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityAddressAddressLine1_6d13773c-4c1f-4e31-bf2a-6b0d2fa43469_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/2019/dei-2019-01-31.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_ScheduleOfAvailableForSaleSecuritiesTable_d7d620f9-ff49-4695-9133-26ba678a84c5_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink: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 Available-for-sale Securities [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink: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 [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GrossProfit_1c2448c2-a013-41d6-9147-fb5864041ba8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_PropertyPlantAndEquipmentNet_676f316d-55a7-4c36-8ed3-a316d5a10ef6_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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_b2a63007-8319-4ff3-bda7-f0d49fa6aced_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">2023</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_NetIncomeLoss_1edabe7b-8cad-42fc-8686-19e85301acc9_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_8d659a19-697c-4156-bf8c-728b312f1c7d_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) Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityAddressStateOrProvince_15a6a0f7-4031-4de3-b515-12baa7b0333c_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/2019/dei-2019-01-31.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_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_0a1f9e02-1b53-4473-bd4e-01841e207494_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">Remainder of fiscal 2019</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_InventoryDisclosureTextBlock_d9fa12b5-61b6-4558-8339-bb2312742d62_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink: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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_LeasesAbstract_9a685c3a-87ee-4d8d-bbb7-1ff62c2f1a88_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">Leases [Abstract]</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased_441f5f8d-0d73-419c-ab71-01e2f9721108_terseLabel_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased" xlink: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 repurchased (in shares)</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased_label_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased" xlink: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, Aggregate Number of Shares Repurchased</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased_documentation_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased" 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, Aggregate Number of Shares Repurchased</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased" xlink:href="cgnx-20200628.xsd#cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased" xlink:to="lab_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrent_96cb0545-b525-413f-995a-4e8e048f1107_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_GoodwillDisclosureTextBlock_21aa676f-5403-449b-a269-9860d9089070_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EarningsPerShareAbstract_fc444e55-e3d9-4f66-a34e-99fcbe7eb8d7_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncomeTaxAuthorityNameAxis_e5bffe1f-25a5-4d22-810a-49d4b2245841_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_RestructuringCharges_9f8e4e5d-ac14-4c66-bdf8-15549acae081_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 (Note 16)</link:label>
    <link:label id="lab_us-gaap_RestructuringCharges_01eb66db-b899-4183-a6e0-d4ca5bed10fd_verboseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" 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">Incurred in the Three-months Ended June 28, 2020</link:label>
    <link:label id="lab_us-gaap_RestructuringCharges_8523ed5a-8f19-4c77-9751-9d7c07015dd5_netLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2009/role/netLabel" 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_ExpirationPeriodOfStockOptionPlan_a1562fc7-81be-423c-9449-70315ea4481e_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 from grant day</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-20200628.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_cgnx_CurrencytranslationadjustmentsAbstract_dcd928ba-d89a-49f0-a110-8b5719827f5a_terseLabel_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentsAbstract" xlink: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_CurrencytranslationadjustmentsAbstract_label_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentsAbstract" xlink: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 adjustments [Abstract]</link:label>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentsAbstract_documentation_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentsAbstract" 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 adjustments [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentsAbstract" xlink:href="cgnx-20200628.xsd#cgnx_CurrencytranslationadjustmentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CurrencytranslationadjustmentsAbstract" xlink:to="lab_cgnx_CurrencytranslationadjustmentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_6403da51-23be-4c4b-8486-3061f19e7f2f_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StockholdersEquityAbstract_13fa6f64-751a-4978-b84a-78bb1d970e64_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">Stockholders' Equity Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_d66f7b65-b9bb-46a7-99c5-f8697f13ca65_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 acquired</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DevelopedTechnologyRightsMember_ce2794b7-13ed-4848-8986-f8684c424502_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_CashAndCashEquivalentsAbstract_41386d32-983a-4a20-b3f1-b7df2e9b4e64_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityInteractiveDataCurrent_d234d849-59e3-4c18-b0c8-67e578dcadb8_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/2019/dei-2019-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cc209520-8df6-4689-a18a-eacb6c81f97f_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 (in&#160;thousands)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_e9bb61f3-03df-4557-981b-81d392a47caa_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">2025</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_dei_EntityCommonStockSharesOutstanding_023ea1b0-46c1-49d4-b4ae-9ce8a2e9731e_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/2019/dei-2019-01-31.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_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_06caf187-3352-4add-9f50-a422f8082d4e_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-20200628.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_4bbf274d-420e-4681-a4e1-8889054d4e97_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 Countries, Euro</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/2020/currency-2020-01-31.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_CertificatesOfDepositMember_7540014e-57e6-49b3-a57c-1bf7ee0e823b_terseLabel_en-US" xlink:label="lab_us-gaap_CertificatesOfDepositMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Certificate of deposit</link:label>
    <link:label id="lab_us-gaap_CertificatesOfDepositMember_label_en-US" xlink:label="lab_us-gaap_CertificatesOfDepositMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Certificates of Deposit [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CertificatesOfDepositMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CertificatesOfDepositMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CertificatesOfDepositMember" xlink:to="lab_us-gaap_CertificatesOfDepositMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_353ded9a-af45-44d2-a644-91b22cd25f7e_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/2019/dei-2019-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_ebd3a663-f2f4-47e1-b973-430b205cb20e_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, shares</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_BusinessAcquisitionAcquireeDomain_b4d816ab-405b-4411-a7a2-d49caef9d0bf_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_e5dee314-5475-4a64-a428-a2d45e1b8d37_verboseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" 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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CommonStockMember_21c41d1a-b22c-4bae-9181-a9b6726ad376_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_ProductsAndServicesDomain_c8f78baf-b77e-426b-92cc-5590844c6f55_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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_8eb64e01-93fe-4681-944e-a81f7ebf6927_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_bf886e62-a09b-4f6d-8a0d-f0b9cea0ee11_negatedLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" 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">Decrease in effective tax rate</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_SovereignDebtSecuritiesMember_c336bdb8-f51a-46b1-8c6a-6a8f30532139_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DividendsCash_53279ef7-258d-4000-b431-c3b8a1ecbad8_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DividendsCash" 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</link:label>
    <link:label id="lab_us-gaap_DividendsCash_label_en-US" xlink:label="lab_us-gaap_DividendsCash" xlink: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, Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCash" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DividendsCash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsCash" xlink:to="lab_us-gaap_DividendsCash" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_3074b232-da68-4bf9-9494-a8b18bf02b0e_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ClassOfTreasuryStockTable_b612c51c-f691-463a-a140-d09d43d1b849_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfTreasuryStockTable" xlink: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 Treasury Stock [Table]</link:label>
    <link:label id="lab_us-gaap_ClassOfTreasuryStockTable_label_en-US" xlink:label="lab_us-gaap_ClassOfTreasuryStockTable" xlink: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 Treasury Stock [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfTreasuryStockTable" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ClassOfTreasuryStockTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfTreasuryStockTable" xlink:to="lab_us-gaap_ClassOfTreasuryStockTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EnShapeGmbHMember_29899812-b835-4f1b-9b7e-2d6755306ac7_terseLabel_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">EnShape GmbH [Member]</link:label>
    <link:label id="lab_cgnx_EnShapeGmbHMember_label_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">EnShape GmbH [Member]</link:label>
    <link:label id="lab_cgnx_EnShapeGmbHMember_documentation_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember" 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">EnShape GmbH</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EnShapeGmbHMember" xlink:href="cgnx-20200628.xsd#cgnx_EnShapeGmbHMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EnShapeGmbHMember" xlink:to="lab_cgnx_EnShapeGmbHMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_afc9ae41-3747-4450-9c78-d7bb5e2cf271_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_OtherNonoperatingIncomeExpenseMember_91b9bc5a-0bfb-44c3-bec6-bc74a0b6b2d5_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpenseMember" xlink: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_OtherNonoperatingIncomeExpenseMember_label_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpenseMember" xlink: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) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:to="lab_us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_b21286d5-2c1f-406a-b392-b6dc3c0bec28_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink: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 Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink: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, Contingent Consideration Arrangements, Range of Outcomes, Value, Low</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_368ff142-7bda-4f60-b80c-ef1006f25aba_terseLabel_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Chiaro Technologies LLC [Member]</link:label>
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_label_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Chiaro Technologies LLC [Member]</link:label>
    <link:label id="lab_cgnx_ChiaroTechnologiesLLCMember_documentation_en-US" xlink:label="lab_cgnx_ChiaroTechnologiesLLCMember" 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">Chiaro Technologies LLC [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember" xlink:href="cgnx-20200628.xsd#cgnx_ChiaroTechnologiesLLCMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ChiaroTechnologiesLLCMember" xlink:to="lab_cgnx_ChiaroTechnologiesLLCMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_81b94112-00b1-4a4b-b089-ef50a596051d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated_48438b02-4dac-4848-89c6-e4992429ffe8_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated" xlink: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 number of positions eliminated</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated" xlink: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, Expected Number of Positions Eliminated</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated" xlink:to="lab_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_b81404b5-a186-48c4-a78e-01b357421399_verboseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" 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">Credit losses on accounts receivable</link:label>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_ac01af44-33fc-49fb-afc5-626f17db0278_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_MunicipalBondsMember_2138e122-15bc-4dd1-a4b9-f75f9bed3bb5_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_PreferredStockValueOutstanding_e470ba8b-07a7-43b4-9077-6067b43b081d_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, Value, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_529ce036-5c3e-4705-b89e-00796a53592e_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, in dollars</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_CurrencyAxis_3d056890-2c5f-4575-aa38-4b554abcd702_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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_EarningsPerShareDilutedAbstract_f45c1b43-c7e8-4ae7-998d-f543d56eca0e_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">Net income (loss) per weighted-average common and common-equivalent share:</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StockIssuedDuringPeriodSharesStockOptionsExercised_6ac34934-b5fc-4540-b1f3-4ebb3239c20d_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, shares</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_5912fe09-2ec1-4e2c-8529-46310390787a_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_3cb22a0a-27ab-49af-9709-fad7cf07bd20_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_df7360cc-6422-4943-8386-1b36ece48601_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">Lessee, Operating Lease, Liability, Maturity</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, Maturity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EmployeeStockOptionMember_4f3e6ead-0f27-490a-95d8-8c71fa1b7dcf_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</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">Share-based Payment Arrangement, Option [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EquityClassOfTreasuryStockLineItems_a4f95a60-f320-42e5-97b8-0b47658cf7c9_terseLabel_en-US" xlink:label="lab_us-gaap_EquityClassOfTreasuryStockLineItems" xlink: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, Class of Treasury Stock [Line Items]</link:label>
    <link:label id="lab_us-gaap_EquityClassOfTreasuryStockLineItems_label_en-US" xlink:label="lab_us-gaap_EquityClassOfTreasuryStockLineItems" xlink: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, Class of Treasury Stock [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityClassOfTreasuryStockLineItems" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityClassOfTreasuryStockLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems" xlink:to="lab_us-gaap_EquityClassOfTreasuryStockLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_796e2836-90d6-4ff2-8391-715ee585b16e_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 (shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_46187b0d-6be4-47f5-9751-3f17f2618a19_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments_6b64dbba-43f4-4a14-ad86-45fc6741d728_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credits related to grants cancelled</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink: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, Severance Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_1c6f89cc-ba7d-4628-b840-8f6570863c7d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_26a25330-73d2-4a5f-88c2-16544f34c640_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Write-offs</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink: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, Writeoff</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_b4e7f11d-a9ba-4a6e-915f-8db4db80ad9d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember_d8c1214b-aeea-411c-a2e5-3bf0a073b38e_terseLabel_en-US" xlink:label="lab_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indefinite-lived intangible asset excluding in-process technologies</link:label>
    <link:label id="lab_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember_label_en-US" xlink:label="lab_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" xlink: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, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks [Member]</link:label>
    <link:label id="lab_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember_documentation_en-US" xlink:label="lab_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" 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 Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" xlink:href="cgnx-20200628.xsd#cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" xlink:to="lab_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_7230b631-8ecc-4a29-9209-dc363ca89205_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</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_9e4b1397-a1d7-47e4-a0bc-92a408558599_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 adjustment</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_PlanNameDomain_07b68d6a-7fc7-4a22-821a-fed0863806f8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_RevenueFromContractWithCustomerTextBlock_7ba78359-5a44-4043-b3ef-743aa3036cff_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_67fe1e81-dcb1-42a0-b526-550fed12734a_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" xlink: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 recoveries</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_ce0507c4-9b28-4285-a5c6-473db4124af1_negatedLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" 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">Decreases to the allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" xlink: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, Recovery</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_1b40e0e9-868c-4721-8509-866d3a3b1e08_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">Recognized period costs 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-20200628.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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_1d32ab9f-6293-4078-93b1-c530eba018f4_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">2021</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CashAndCashEquivalentsPolicyTextBlock_206aae3e-50d1-4177-bf4c-53ef443114d8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ForeignCurrencyTransactionGainLossBeforeTax_5217ef62-cffb-4c47-9e0c-52caec057261_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">Foreign Currency Transaction Gain (Loss), before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_IncomeTaxExpenseBenefit_1187c626-54db-463f-b0f1-31557aa2bdb5_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 (benefit)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock_309c9696-f765-4c62-95c0-c8a7617c43e4_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink: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 Nonvested Restricted Stock Units Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink: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 Nonvested Restricted Stock Units Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_f1a73ea6-bdad-453d-a960-9e6a0b29efd8_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 period</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_df666790-4d4e-40ea-81a4-346e43fccb3e_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 period</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_9d478646-9786-4d91-82ad-868114a6df1a_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink: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 impairment charges (Note 8)</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_9a1dd196-056d-4b44-86c2-681869fbb17b_verboseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" 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">Intangible asset impairment charges</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of Intangible Assets (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:to="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_3e5aaf78-c8e4-490d-88d9-2e107f279b2b_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_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_EarningsPerShareDiluted_f94d0582-51c5-48ce-a76b-306755e9e4a3_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">Diluted (usd 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_RepurchaseProgramMarch2020Member_9ddb5697-8903-4782-9d27-9a9da4f8adf4_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</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 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member" xlink:href="cgnx-20200628.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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_37634092-2544-4cbc-8f45-37c948f86de6_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_AmericasMember_4acfaa09-fbf4-4fce-bbbd-54e0cc642204_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</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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_20d3ada3-4083-4149-94aa-7f232935e45d_terseLabel_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink: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 value</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_label_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink: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 Exercisable Intrinsic Value</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_documentation_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" 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 exercisable intrinsic value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:href="cgnx-20200628.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:to="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MovementInDeferredRevenueRollForward_ba5fdbd6-c503-4cd3-85fb-9a575aa48056_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInDeferredRevenueRollForward" xlink: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 Deferred Revenue [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInDeferredRevenueRollForward_label_en-US" xlink:label="lab_us-gaap_MovementInDeferredRevenueRollForward" xlink: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 Deferred Revenue [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInDeferredRevenueRollForward" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MovementInDeferredRevenueRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInDeferredRevenueRollForward" xlink:to="lab_us-gaap_MovementInDeferredRevenueRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_c1b551d3-2a9f-4dd3-950b-4be8be958e0e_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink: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 on cash flow hedges</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink: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), Derivatives Qualifying as Hedges, Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLineItems_a1cb926c-bd22-44d1-b4a5-f0dd1d1e766d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_24ce575c-0523-4dd7-a7ed-b1c35bd633b8_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink: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, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation</link:label>
    <link:label id="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink: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, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:to="lab_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Depreciation_10ecc383-4e56-41bf-ba01-a837b00964bb_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StockIssuedDuringPeriodValueStockOptionsExercised_d3bb7420-8196-4737-bec1-129debe785c3_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 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_AgencyBondsMember_a2289e7d-8ea7-4d6a-9e23-3f20c8c2c507_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</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-20200628.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_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_3b39295a-4b53-407c-be4f-d265b817b55c_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DerivativeFairValueOfDerivativeLiability_8fb1f8f3-a9f3-434e-85a0-c3d1b78b0b12_verboseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" 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">Gross amounts of recognized liabilities</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, Fair Value, Gross Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AwardTypeAxis_35bfcd00-661c-4385-a4ad-0989e0a1b382_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_d50f7bbc-0ed0-46e7-9a74-3bae2065643e_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 Date 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_PrepaidExpensesAndOtherCurrentAssetsMember_93c02966-82e3-4be3-b056-32d0c4700b01_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink: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_PrepaidExpensesAndOtherCurrentAssetsMember_label_en-US" xlink:label="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink: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 Expenses and Other Current Assets [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink:to="lab_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_886c8ae3-807e-47bb-b294-30cc895f0771_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_srt_MaximumMember_b54ec805-50d6-4a1c-aec1-3ff8247d6c2d_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</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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.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_dei_SecurityExchangeName_5bb011c4-d934-4bad-a1d7-e7ce1e8e9219_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/2019/dei-2019-01-31.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_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_c0ab3864-3f98-4b47-8012-e3777728b424_verboseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" 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">Gross credit losses recorded</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_1ef1fb4d-fc17-4bb3-b69e-834e3d30c617_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" xlink: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_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" xlink: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, Change in Present Value, Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsMember_5eb89663-f000-4c67-9ba7-6b2b4a3c2ba7_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</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_af0fcd6d-6387-4a0e-9364-82bf369b34aa_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" 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 contingent consideration</link:label>
    <link:label id="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_7e721c35-fb4c-4b9d-ba48-966c760802a1_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink: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 of contingent consideration</link:label>
    <link:label id="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_label_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink: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, Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:to="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_e2b9671b-df01-4d67-91c4-6b59df9559e8_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_c3910793-5693-4046-9869-496069e1b435_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_SignificantAccountingPoliciesTextBlock_5e18f522-9c0a-4b29-9743-66164f8f535d_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_NetCashProvidedByUsedInInvestingActivities_be22016f-9f08-457f-9fd6-a19d53a2aaee_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_PaymentsToAcquireInvestments_6587dc4a-bf40-498c-a15c-87d612bff8ce_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_e3c2b379-64fe-4021-be67-f07bc9c6c9ea_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink: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 Remaining Contractual Term&#160;(in&#160;years)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink: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, Additional Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_9c300428-e487-47fd-8719-0ce714bbdacc_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, 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4d35b334-be6d-4eb8-a9f3-416db4cefa8b_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_AllowanceForDoubtfulAccountsReceivable_ed610790-05c7-4255-a08b-e73b0a540559_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">Balance as of December 31, 2019</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_c704b40d-6c1a-4879-947a-23fdcf77cedb_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">Balance as of June 28, 2020</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ff9e006e-a5ea-4114-afb2-f9b3786db279_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">Award Type [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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_d998f568-4bfd-444a-865d-533b38e451d8_terseLabel_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink: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, Operating Lease, Payment to be Received, Fiscal Year Maturity [Table Text Block]</link:label>
    <link:label id="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink: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, Operating Lease, Payment to be Received, Fiscal Year Maturity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:to="lab_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_ac9384f3-afab-4f11-a799-84e409794a8d_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">Investments [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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DocumentTransitionReport_48e99ccc-982e-4560-8fb1-7512c64d7161_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/2019/dei-2019-01-31.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_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_e01d5252-b708-43c2-973f-9ab2f3f9d7b5_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 Activity in Restructuring Reserve</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_ee713a33-e42c-429c-bbb8-664b920aa81f_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 as of reporting date, Weighted-Average Exercise Price, in dollars per share</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_DeferredRevenueAdditions_b6167d63-d7aa-4a51-a43b-7cd502e30ca6_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueAdditions" xlink: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 deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueAdditions_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueAdditions" xlink: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, Additions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueAdditions" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueAdditions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueAdditions" xlink:to="lab_us-gaap_DeferredRevenueAdditions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_4b7fbb80-903e-4532-892c-ba58a9b80708_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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_EarningsPerShareTextBlock_73a34e38-d8c1-4838-918e-b691a51147b0_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_e176e384-19ed-49af-8109-b279765ac7bd_terseLabel_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:label id="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_label_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_StockRepurchaseProgramValue_af2146a2-fbf7-4d86-b700-b32f476a4428_terseLabel_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramValue" xlink: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 repurchased, value</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramValue_label_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramValue" xlink: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, Value</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramValue_documentation_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramValue" 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, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramValue" xlink:href="cgnx-20200628.xsd#cgnx_StockRepurchaseProgramValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StockRepurchaseProgramValue" xlink:to="lab_cgnx_StockRepurchaseProgramValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_1bad34e6-2d66-4953-a628-5e2b9246afcc_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_05f9e611-c876-4587-bde7-f21f03b498f8_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 (benefit) 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_CostOfGoodsTotalMember_38b50567-3b4f-41e2-b21f-7063ee25e577_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsTotalMember" xlink: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_CostOfGoodsTotalMember_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsTotalMember" xlink: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 Service Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsTotalMember" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsTotalMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsTotalMember" xlink:to="lab_us-gaap_CostOfGoodsTotalMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_b5389536-1dda-4f74-b054-6aee1e370a81_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_c396c479-e8bd-4c95-891a-12a0cae14029_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">Weighted- Average Remaining Contractual Term&#160;(in&#160;years)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_IncomeTaxContingencyTable_1c68faf6-b173-407c-aeed-c707531dcf1b_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxContingencyTable" xlink: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 Contingency [Table]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxContingencyTable_label_en-US" xlink:label="lab_us-gaap_IncomeTaxContingencyTable" xlink: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 Contingency [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxContingencyTable" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxContingencyTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxContingencyTable" xlink:to="lab_us-gaap_IncomeTaxContingencyTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_078a1916-2d2f-4439-8212-47fb8ab59f51_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 Values 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_fde5f65b-744a-4a22-93fd-eb761ae9e292_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 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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_StatementOfFinancialPositionAbstract_009c34f3-ea96-47d5-a95d-3805ffbc89c5_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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.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_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_bcc850a6-9573-477d-baa9-603472b22aa3_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, in dollars</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-20200628.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:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>10
<FILENAME>cgnx-20200628_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2020 Workiva-->
<!--r:02407863-1aa6-4dd3-b32c-ad49ce80f53d,g:b1bfca50-59f6-49eb-9685-ec35a28640f4-->
<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.cognex.com/role/CoverPage" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CoverPage"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CoverPage" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_2693dca2-ddf4-41b6-afe0-5c9a7a2a8857" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_DocumentType_2693dca2-ddf4-41b6-afe0-5c9a7a2a8857" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentQuarterlyReport_f03b232a-82e3-4123-8bd3-42657cc9d940" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentQuarterlyReport"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_DocumentQuarterlyReport_f03b232a-82e3-4123-8bd3-42657cc9d940" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_1d38c8b0-9152-44be-9a04-5ea7fb7d94b5" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_DocumentPeriodEndDate_1d38c8b0-9152-44be-9a04-5ea7fb7d94b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport_d437f60d-0ebe-4d50-bc4c-8776165bf569" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentTransitionReport"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_DocumentTransitionReport_d437f60d-0ebe-4d50-bc4c-8776165bf569" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_1eab2b0d-e117-4f18-a23c-e4605bfcf700" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityFileNumber_1eab2b0d-e117-4f18-a23c-e4605bfcf700" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_5d3d518c-efe4-498f-bf08-80bbe4ff3dd6" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityRegistrantName_5d3d518c-efe4-498f-bf08-80bbe4ff3dd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_6b933438-1bee-4a3c-9c96-ba46ab4147cd" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityCentralIndexKey_6b933438-1bee-4a3c-9c96-ba46ab4147cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate_57a96471-e14e-413c-b2e7-f94c12405da9" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_CurrentFiscalYearEndDate_57a96471-e14e-413c-b2e7-f94c12405da9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus_ab9baf6c-125f-4a20-9ef4-52ca78a4b80c" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_DocumentFiscalYearFocus_ab9baf6c-125f-4a20-9ef4-52ca78a4b80c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus_9cc47afd-55f2-45c2-a4d6-8eb377e5e192" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_DocumentFiscalPeriodFocus_9cc47afd-55f2-45c2-a4d6-8eb377e5e192" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_1d5d5090-1815-4604-92e3-1834109b0f5f" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_AmendmentFlag_1d5d5090-1815-4604-92e3-1834109b0f5f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_249c282a-9096-4553-85c9-04865b16db67" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityIncorporationStateCountryCode_249c282a-9096-4553-85c9-04865b16db67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_688caed2-59a6-4495-87bb-074f0ddb07d5" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityTaxIdentificationNumber_688caed2-59a6-4495-87bb-074f0ddb07d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_f7fb04c9-fd98-4ba1-a66c-15df6d2fe353" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityAddressAddressLine1_f7fb04c9-fd98-4ba1-a66c-15df6d2fe353" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_c48cf78e-802e-4085-b640-8c054b551f0b" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityAddressCityOrTown_c48cf78e-802e-4085-b640-8c054b551f0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_f05b6e4b-b2d4-4fac-833b-3ec4825202f6" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityAddressStateOrProvince_f05b6e4b-b2d4-4fac-833b-3ec4825202f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_baf5aeed-0074-40ba-a08d-67895b791b2f" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityAddressPostalZipCode_baf5aeed-0074-40ba-a08d-67895b791b2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_b39096b4-d96e-4240-8355-618be85a8a91" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_CityAreaCode_b39096b4-d96e-4240-8355-618be85a8a91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_e794bab7-d432-42c3-bb82-00061f1b49e8" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_LocalPhoneNumber_e794bab7-d432-42c3-bb82-00061f1b49e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus_38c0d9ef-b146-44f2-93aa-4322cf9910cc" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityCurrentReportingStatus_38c0d9ef-b146-44f2-93aa-4322cf9910cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent_3042b857-9a2f-4ec2-8a33-38ee1af56b8c" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityInteractiveDataCurrent_3042b857-9a2f-4ec2-8a33-38ee1af56b8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory_93c3b6fe-0b64-467a-88b1-764c308d7820" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityFilerCategory_93c3b6fe-0b64-467a-88b1-764c308d7820" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness_409a6754-8de0-4f60-96b5-95b7e7677069" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntitySmallBusiness_409a6754-8de0-4f60-96b5-95b7e7677069" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_9120f7e7-f0bf-4797-84a0-d4d78c9128fe" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityEmergingGrowthCompany_9120f7e7-f0bf-4797-84a0-d4d78c9128fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany_f481fc20-16f3-4ed6-9d91-2528390b6004" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityShellCompany_f481fc20-16f3-4ed6-9d91-2528390b6004" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_1f573158-e264-4ce3-b10e-904d998e941f" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_Security12bTitle_1f573158-e264-4ce3-b10e-904d998e941f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_3e0ae8e1-73b9-4bc0-8265-ef23a794b488" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_TradingSymbol_3e0ae8e1-73b9-4bc0-8265-ef23a794b488" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_ac09181f-fb95-4883-ace9-96d8d99e3e3f" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_SecurityExchangeName_ac09181f-fb95-4883-ace9-96d8d99e3e3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_94c0d78b-4c5d-446a-82db-40de2998ee75" xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_6beda88d-6ab5-4075-a441-9b1eb7cb629c" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_94c0d78b-4c5d-446a-82db-40de2998ee75" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofOperations"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ac281c1c-d362-44bf-be04-fcfd9b62331b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ac281c1c-d362-44bf-be04-fcfd9b62331b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_d4b7ff49-3c5f-4625-bbff-2890a824acf4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_d4b7ff49-3c5f-4625-bbff-2890a824acf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_57fc53c1-fe88-4370-a3cd-c19bcc7d0f30" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_GrossProfit_57fc53c1-fe88-4370-a3cd-c19bcc7d0f30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_ff8ea4ff-ff16-4640-bee3-23ebf1d6e7c0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_ff8ea4ff-ff16-4640-bee3-23ebf1d6e7c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_39f711e7-be97-4f99-bff3-9a3b5ad216bf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_39f711e7-be97-4f99-bff3-9a3b5ad216bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_a4557e34-7cdf-4832-bd16-4ca3fe2f60e6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_RestructuringCharges_a4557e34-7cdf-4832-bd16-4ca3fe2f60e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_cdbded60-1860-4172-b3f9-3bcede356fce" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_cdbded60-1860-4172-b3f9-3bcede356fce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_71df34eb-e172-4e0a-8d1e-6ad21b7b9623" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_OperatingIncomeLoss_71df34eb-e172-4e0a-8d1e-6ad21b7b9623" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_cc695ecd-b3e5-437b-b415-e48ff12944d3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_cc695ecd-b3e5-437b-b415-e48ff12944d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_98be6a34-a3e0-4944-b097-b4143bc655e7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_98be6a34-a3e0-4944-b097-b4143bc655e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_150f54b8-fcc9-4606-9096-408c5d9eba7b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_150f54b8-fcc9-4606-9096-408c5d9eba7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_8bcbb25f-6725-48a6-8088-12c2cb083ecf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_8bcbb25f-6725-48a6-8088-12c2cb083ecf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_9f5fd55c-8573-4ca5-b85b-b845e0715dde" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_9f5fd55c-8573-4ca5-b85b-b845e0715dde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_952d6051-0c65-4689-9706-908c8b1ac305" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_NetIncomeLoss_952d6051-0c65-4689-9706-908c8b1ac305" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract_47762673-17db-4c51-85f8-d207dc5c63b9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDilutedAbstract"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_EarningsPerShareDilutedAbstract_47762673-17db-4c51-85f8-d207dc5c63b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_39c24180-97a0-4ae3-83db-d4ac0c31f99f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_47762673-17db-4c51-85f8-d207dc5c63b9" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare_39c24180-97a0-4ae3-83db-d4ac0c31f99f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_76edefee-19d0-4e59-a34c-7c063f191194" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_47762673-17db-4c51-85f8-d207dc5c63b9" xlink:to="loc_us-gaap_EarningsPerShareDiluted_76edefee-19d0-4e59-a34c-7c063f191194" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_787749a0-180f-4ee2-abb0-fa6b220d224a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_787749a0-180f-4ee2-abb0-fa6b220d224a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_9ed01acf-22a1-4534-9ab4-ba6a638631c7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_787749a0-180f-4ee2-abb0-fa6b220d224a" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_9ed01acf-22a1-4534-9ab4-ba6a638631c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_1eb951cc-ded8-4765-b051-77d275fe580d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_787749a0-180f-4ee2-abb0-fa6b220d224a" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_1eb951cc-ded8-4765-b051-77d275fe580d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4d208c91-8493-4fc8-bb10-f2111e75af45" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_6306eea2-0bf0-4c60-95ce-808f802a414d" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4d208c91-8493-4fc8-bb10-f2111e75af45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofComprehensiveIncome"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_84684d58-7920-495c-abd3-e2aa27770b3d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_1f293a13-6843-4080-9d71-b31641a21057" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_84684d58-7920-495c-abd3-e2aa27770b3d" xlink:to="loc_us-gaap_NetIncomeLoss_1f293a13-6843-4080-9d71-b31641a21057" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_e532f448-1316-4e01-a806-4e996488c289" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTaxAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_84684d58-7920-495c-abd3-e2aa27770b3d" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_e532f448-1316-4e01-a806-4e996488c289" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashflowshedgesAbstract_7d67c709-2f64-4f78-9ffa-47a9b0cc5edc" xlink:href="cgnx-20200628.xsd#cgnx_CashflowshedgesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_e532f448-1316-4e01-a806-4e996488c289" xlink:to="loc_cgnx_CashflowshedgesAbstract_7d67c709-2f64-4f78-9ffa-47a9b0cc5edc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_445d8c55-71ee-4893-b945-916fd71f19ac" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_e532f448-1316-4e01-a806-4e996488c289" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_445d8c55-71ee-4893-b945-916fd71f19ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_be6cb7b7-b5d8-4384-aa51-d7728803b692" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_445d8c55-71ee-4893-b945-916fd71f19ac" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_be6cb7b7-b5d8-4384-aa51-d7728803b692" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_543e3f92-03b0-4e56-9418-0f3b75dbfc5b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_445d8c55-71ee-4893-b945-916fd71f19ac" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_543e3f92-03b0-4e56-9418-0f3b75dbfc5b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_0715d392-cad0-49e5-a078-d02d283b4b60" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_445d8c55-71ee-4893-b945-916fd71f19ac" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_0715d392-cad0-49e5-a078-d02d283b4b60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7f54ab80-e1e5-4c15-baba-a23321dc125d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_445d8c55-71ee-4893-b945-916fd71f19ac" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_7f54ab80-e1e5-4c15-baba-a23321dc125d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentsAbstract_643a0192-8c96-4708-afa9-0f50e89c5a45" xlink:href="cgnx-20200628.xsd#cgnx_CurrencytranslationadjustmentsAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_e532f448-1316-4e01-a806-4e996488c289" xlink:to="loc_cgnx_CurrencytranslationadjustmentsAbstract_643a0192-8c96-4708-afa9-0f50e89c5a45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12eb99e2-08f7-4f55-b25b-c142a36caae1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentsAbstract_643a0192-8c96-4708-afa9-0f50e89c5a45" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_12eb99e2-08f7-4f55-b25b-c142a36caae1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_6c6b2648-9cf8-4dab-9ee3-ce90dac551f0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTaxAbstract_e532f448-1316-4e01-a806-4e996488c289" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_6c6b2648-9cf8-4dab-9ee3-ce90dac551f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_db94d09a-902b-4cbf-878c-5f4f12a0010e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_84684d58-7920-495c-abd3-e2aa27770b3d" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTax_db94d09a-902b-4cbf-878c-5f4f12a0010e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofComprehensiveIncomeParenthetical"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_01dcf18a-3a89-4032-8e75-b424bf08841d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_ae498873-53ff-4822-8856-e9444dcf5da7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_01dcf18a-3a89-4032-8e75-b424bf08841d" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax_ae498873-53ff-4822-8856-e9444dcf5da7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_54d6d87f-b6de-42cb-966c-e4c90e41be3a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_01dcf18a-3a89-4032-8e75-b424bf08841d" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_54d6d87f-b6de-42cb-966c-e4c90e41be3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_3fab6cb4-8ed1-40ed-91d5-addacf1a781c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_01dcf18a-3a89-4032-8e75-b424bf08841d" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax_3fab6cb4-8ed1-40ed-91d5-addacf1a781c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedBalanceSheets"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_f2f6f710-ae3a-4254-ba14-99a12aba5160" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_f2f6f710-ae3a-4254-ba14-99a12aba5160" xlink:to="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_f4b79d13-e1da-4fc3-809b-b509500b0743" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_f4b79d13-e1da-4fc3-809b-b509500b0743" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_42623e6a-24d1-46d2-aab7-4c2d77ce5f2f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_42623e6a-24d1-46d2-aab7-4c2d77ce5f2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_151fe938-515d-4284-8b38-5ada501454a3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_151fe938-515d-4284-8b38-5ada501454a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_6474eb75-87cb-454a-af46-7b61e82c20c5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_6474eb75-87cb-454a-af46-7b61e82c20c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_2e3d1bce-9c65-47db-92fe-caac7f6ab2d5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:to="loc_us-gaap_InventoryNet_2e3d1bce-9c65-47db-92fe-caac7f6ab2d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_db6f9f73-f241-44d2-85ae-7cd04cab4a84" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_db6f9f73-f241-44d2-85ae-7cd04cab4a84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_3fa281d7-351e-483c-8341-0fa98b67d200" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_60aaec25-6892-4c5c-9c85-e02395b44a27" xlink:to="loc_us-gaap_AssetsCurrent_3fa281d7-351e-483c-8341-0fa98b67d200" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_a1c5864b-caed-4f82-bea6-3bc8e06f634a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_LongTermInvestments_a1c5864b-caed-4f82-bea6-3bc8e06f634a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_87081529-74d4-42a5-88ae-25d44556d554" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_87081529-74d4-42a5-88ae-25d44556d554" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_5e06fe37-993b-40a9-a2a5-1425e1142411" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_5e06fe37-993b-40a9-a2a5-1425e1142411" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_9b4360ff-809a-4f81-8770-ea34b7280db1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_Goodwill_9b4360ff-809a-4f81-8770-ea34b7280db1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_422fa7ab-94c9-49e7-9689-b0709ac70157" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_422fa7ab-94c9-49e7-9689-b0709ac70157" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_e2dd524e-a8c0-444a-ad91-51754e888e1c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_e2dd524e-a8c0-444a-ad91-51754e888e1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_24df9802-07af-414e-8417-00deef5470f4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_24df9802-07af-414e-8417-00deef5470f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_8262e73f-78cd-4b57-ae31-ba8be30cbeab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f3058a2d-39f5-48c1-ae53-fe3fc409ef97" xlink:to="loc_us-gaap_Assets_8262e73f-78cd-4b57-ae31-ba8be30cbeab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_f2f6f710-ae3a-4254-ba14-99a12aba5160" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_47132256-dda4-4ac7-b6d6-a481bf11cdb3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:to="loc_us-gaap_AccountsPayableCurrent_47132256-dda4-4ac7-b6d6-a481bf11cdb3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_c2ab14b5-ca63-460e-80bf-7b529e5e343e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_c2ab14b5-ca63-460e-80bf-7b529e5e343e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_4b539637-a616-4889-9e1e-c95b0b29ef17" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_4b539637-a616-4889-9e1e-c95b0b29ef17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_88de7888-c2dc-44ad-9d8e-65517e27d13b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_88de7888-c2dc-44ad-9d8e-65517e27d13b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_4947eb92-7cd5-4693-978b-981c652fb57c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_4947eb92-7cd5-4693-978b-981c652fb57c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_a105dafb-9419-433d-9f16-bfa2b3e1e805" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_7eb6e1fa-9803-4781-954e-a347eea32e76" xlink:to="loc_us-gaap_LiabilitiesCurrent_a105dafb-9419-433d-9f16-bfa2b3e1e805" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_e411d4f8-d704-48ce-b083-a8bde362eb3c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_e411d4f8-d704-48ce-b083-a8bde362eb3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_505abf51-b750-4d7d-a87f-e05bf7a7a386" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_505abf51-b750-4d7d-a87f-e05bf7a7a386" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_ca4b9590-0551-4d6c-9add-1b3cd85f5f9f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_ca4b9590-0551-4d6c-9add-1b3cd85f5f9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxes_e54eb435-8eef-48d7-b4c8-a727c2490826" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxes"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_AccruedIncomeTaxes_e54eb435-8eef-48d7-b4c8-a727c2490826" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_9cf9a6f9-ed20-41ef-9fb3-ec1faef3c99f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_9cf9a6f9-ed20-41ef-9fb3-ec1faef3c99f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_1801ee11-a52f-4587-8515-905f6dc99594" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_Liabilities_1801ee11-a52f-4587-8515-905f6dc99594" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_cb16769a-471d-489a-bb52-701869142080" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_cb16769a-471d-489a-bb52-701869142080" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract_a927b52e-ff04-465d-a029-125aec3c75f4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_StockholdersEquityAbstract_a927b52e-ff04-465d-a029-125aec3c75f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_f7f88021-116e-467a-b996-76e854e35988" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_a927b52e-ff04-465d-a029-125aec3c75f4" xlink:to="loc_us-gaap_CommonStockValueOutstanding_f7f88021-116e-467a-b996-76e854e35988" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_8a000a8c-aa93-43e1-bfdf-2dd9ba0b2cf8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_a927b52e-ff04-465d-a029-125aec3c75f4" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_8a000a8c-aa93-43e1-bfdf-2dd9ba0b2cf8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_77f35c69-4bd9-4510-a8bc-e58f5232585a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_a927b52e-ff04-465d-a029-125aec3c75f4" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_77f35c69-4bd9-4510-a8bc-e58f5232585a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_6dfca6c5-c8d7-4a96-ade8-bcb18ee13273" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_a927b52e-ff04-465d-a029-125aec3c75f4" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_6dfca6c5-c8d7-4a96-ade8-bcb18ee13273" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_e483b6c4-63cc-475a-9e68-2ae740bc3fe2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_a927b52e-ff04-465d-a029-125aec3c75f4" xlink:to="loc_us-gaap_StockholdersEquity_e483b6c4-63cc-475a-9e68-2ae740bc3fe2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_5b8282ba-4da8-4d46-bfb8-86868e46d957" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_70e03f90-b4e8-4fcc-996d-7bc94dafdbfe" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_5b8282ba-4da8-4d46-bfb8-86868e46d957" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_14682c40-1fe0-468e-9ee6-f7994cc06bd9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_1edbe381-7fb7-4e9b-91ba-81a3da7e57e3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_14682c40-1fe0-468e-9ee6-f7994cc06bd9" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_1edbe381-7fb7-4e9b-91ba-81a3da7e57e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_fa545cc9-9581-458e-a6c0-2bde8fbbda8a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_14682c40-1fe0-468e-9ee6-f7994cc06bd9" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_fa545cc9-9581-458e-a6c0-2bde8fbbda8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_94e1816d-9f20-47d1-977b-39a5b0bbc78d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_14682c40-1fe0-468e-9ee6-f7994cc06bd9" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_94e1816d-9f20-47d1-977b-39a5b0bbc78d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_d37b25a7-1e37-4eac-afee-753d1732a986" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_14682c40-1fe0-468e-9ee6-f7994cc06bd9" xlink:to="loc_us-gaap_CommonStockSharesIssued_d37b25a7-1e37-4eac-afee-753d1732a986" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4b03dbb6-6c0c-4fdf-b090-ca45a559560f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4b03dbb6-6c0c-4fdf-b090-ca45a559560f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_414fef70-0cda-45b3-960f-a3dbb45bfea4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4b03dbb6-6c0c-4fdf-b090-ca45a559560f" xlink:to="loc_us-gaap_NetIncomeLoss_414fef70-0cda-45b3-960f-a3dbb45bfea4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4b03dbb6-6c0c-4fdf-b090-ca45a559560f" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_f1f966ae-b6c4-4d18-bdc1-388f469300d3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_StockOptionPlanExpense_f1f966ae-b6c4-4d18-bdc1-388f469300d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_918dec0d-a5e1-488a-bcc6-895e0d7de399" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Depreciation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_Depreciation_918dec0d-a5e1-488a-bcc6-895e0d7de399" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_3b1ced9a-1c0c-4681-86f5-c54af0e9895e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_3b1ced9a-1c0c-4681-86f5-c54af0e9895e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_43af26cb-2da6-4948-98b8-48790bac3c70" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_43af26cb-2da6-4948-98b8-48790bac3c70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_1deccb06-e37d-40d2-a600-bdb822034a1f" xlink:href="cgnx-20200628.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_1deccb06-e37d-40d2-a600-bdb822034a1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_058d134a-8aad-4628-bab0-319be511416e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_058d134a-8aad-4628-bab0-319be511416e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_91990611-c510-4a20-a4ba-1d7847653cb6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_91990611-c510-4a20-a4ba-1d7847653cb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_8857399f-2995-441a-8d32-90598fe7317f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_8857399f-2995-441a-8d32-90598fe7317f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery_7c962aa3-a300-4535-833d-950ea896225c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery_7c962aa3-a300-4535-833d-950ea896225c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_8825060e-197b-407b-91da-d19eaaf2b919" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_8825060e-197b-407b-91da-d19eaaf2b919" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_c7d9f547-b2b4-4268-bbe8-d7c2076774dd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_c7d9f547-b2b4-4268-bbe8-d7c2076774dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_056d8848-982e-4f13-8835-3b4045c99f84" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_056d8848-982e-4f13-8835-3b4045c99f84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_f00d1141-0d6e-4528-bec3-c0d00c78cf1e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_f00d1141-0d6e-4528-bec3-c0d00c78cf1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_11a8e387-538b-4670-895f-79f7b8e35773" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_11a8e387-538b-4670-895f-79f7b8e35773" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_b3bf9185-ec9a-455e-9830-657dd753c6a7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_b3bf9185-ec9a-455e-9830-657dd753c6a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_6cd92627-bf81-472a-a052-2c374263f6f7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_6cd92627-bf81-472a-a052-2c374263f6f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_f3cadafa-df04-45e6-983b-4161320e9aee" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_f3cadafa-df04-45e6-983b-4161320e9aee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedTaxesPayable_98b06c0d-3203-48a0-bc72-d61087b0135f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedTaxesPayable"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedTaxesPayable_98b06c0d-3203-48a0-bc72-d61087b0135f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_cfc454b1-b82e-47ff-b8f4-2710a122ced5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredRevenue_cfc454b1-b82e-47ff-b8f4-2710a122ced5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_fdff278b-eafb-4e1a-9ab8-35a21a9360c2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_e105c889-da59-41dc-8a64-a0eead518a1c" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_fdff278b-eafb-4e1a-9ab8-35a21a9360c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_0b06f6e5-f2f4-4d46-8be9-1b94f3f02a3c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4b03dbb6-6c0c-4fdf-b090-ca45a559560f" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_0b06f6e5-f2f4-4d46-8be9-1b94f3f02a3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ae4ace-4eec-4c80-a874-1c86393a2d40" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ae4ace-4eec-4c80-a874-1c86393a2d40" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_27fcbf2d-0b96-4e4e-be96-9b03f4c30f6a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ae4ace-4eec-4c80-a874-1c86393a2d40" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_27fcbf2d-0b96-4e4e-be96-9b03f4c30f6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_07ea6d7e-9b7c-437b-abaa-d9a79bee698e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ae4ace-4eec-4c80-a874-1c86393a2d40" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_07ea6d7e-9b7c-437b-abaa-d9a79bee698e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_874a99d3-f3f1-45d8-8672-d55c085c4ca8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ae4ace-4eec-4c80-a874-1c86393a2d40" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_874a99d3-f3f1-45d8-8672-d55c085c4ca8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_cc6aa5e8-795e-448c-b891-d8e81b7a36aa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ae4ace-4eec-4c80-a874-1c86393a2d40" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_cc6aa5e8-795e-448c-b891-d8e81b7a36aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_ba8db21f-b88b-4fe5-8d9c-1e33a5fed1b7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_ba8db21f-b88b-4fe5-8d9c-1e33a5fed1b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_d3379170-d7c4-4805-a6d5-07fbdd8b6a29" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_ba8db21f-b88b-4fe5-8d9c-1e33a5fed1b7" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_d3379170-d7c4-4805-a6d5-07fbdd8b6a29" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4078483d-0155-461c-92b9-c29a9fbf52ff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_ba8db21f-b88b-4fe5-8d9c-1e33a5fed1b7" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4078483d-0155-461c-92b9-c29a9fbf52ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_493f9229-9739-466b-9caf-234514af1afa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_ba8db21f-b88b-4fe5-8d9c-1e33a5fed1b7" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_493f9229-9739-466b-9caf-234514af1afa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_d27d3570-3347-4c5f-a2b6-d242045eac07" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_ba8db21f-b88b-4fe5-8d9c-1e33a5fed1b7" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_d27d3570-3347-4c5f-a2b6-d242045eac07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_12f67b09-b230-4c8a-be68-28d398f0d08d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_ba8db21f-b88b-4fe5-8d9c-1e33a5fed1b7" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_12f67b09-b230-4c8a-be68-28d398f0d08d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_19208d01-1c1b-459e-b537-4a781f5df839" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_19208d01-1c1b-459e-b537-4a781f5df839" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_3252b929-3f6a-4e12-af53-844074ae56e4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_3252b929-3f6a-4e12-af53-844074ae56e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_757b246a-7b99-4064-8c48-221a48ad11f4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_757b246a-7b99-4064-8c48-221a48ad11f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_dc440862-f5a2-4c09-82f2-f54235fb77d8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_b4988632-78db-4c3f-9742-f02891ed5a3a" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_dc440862-f5a2-4c09-82f2-f54235fb77d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementofShareholdersEquity"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_de2d1438-5503-4416-9a40-f7a926b0f771" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_83ed602b-656c-45a5-b6be-53fea09b19c0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_de2d1438-5503-4416-9a40-f7a926b0f771" xlink:to="loc_us-gaap_StatementTable_83ed602b-656c-45a5-b6be-53fea09b19c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_e24ac97b-8499-40a7-9e52-78f90cfeb02f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_83ed602b-656c-45a5-b6be-53fea09b19c0" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_e24ac97b-8499-40a7-9e52-78f90cfeb02f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_e24ac97b-8499-40a7-9e52-78f90cfeb02f" xlink:to="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_fd6b863c-f6e9-4fdd-9693-9e4aa1f131ea" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_CommonStockMember_fd6b863c-f6e9-4fdd-9693-9e4aa1f131ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_82172fc5-1dc9-4411-92d6-b7c8d79ad3ea" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_82172fc5-1dc9-4411-92d6-b7c8d79ad3ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_af72af05-2b46-4e40-ae4e-84fbbec73a97" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_RetainedEarningsMember_af72af05-2b46-4e40-ae4e-84fbbec73a97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_a73ec11c-4a5a-40c9-b6ad-03da69133682" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_043a4d69-3684-40f8-85bb-ba7bd8f8f4bc" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_a73ec11c-4a5a-40c9-b6ad-03da69133682" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_bb9fc22d-eaf0-4136-8f98-3a2246ee3222" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_83ed602b-656c-45a5-b6be-53fea09b19c0" xlink:to="loc_us-gaap_StatementLineItems_bb9fc22d-eaf0-4136-8f98-3a2246ee3222" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_bb9fc22d-eaf0-4136-8f98-3a2246ee3222" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_9e94eaaa-8212-4739-949a-dab2e061d45e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_CommonStockSharesIssued_9e94eaaa-8212-4739-949a-dab2e061d45e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_a4a357ab-f574-40cd-ba70-95ffd38028ee" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockholdersEquity_a4a357ab-f574-40cd-ba70-95ffd38028ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_4becc6ac-d3b0-47cc-9248-9ebd7d2a34ec" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_4becc6ac-d3b0-47cc-9248-9ebd7d2a34ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_ed8a350b-1804-46e4-bbc3-a0d722a902da" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_ed8a350b-1804-46e4-bbc3-a0d722a902da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_2b7caf6a-f586-4d90-b5e4-699966d9a215" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_2b7caf6a-f586-4d90-b5e4-699966d9a215" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_94273878-4aad-4b82-bb59-52cfcfa63d18" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_94273878-4aad-4b82-bb59-52cfcfa63d18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_48e75253-2735-427d-9225-e49990cb26d7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_48e75253-2735-427d-9225-e49990cb26d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCash_17d44d82-0b9d-4732-8d5c-23bd47b8b0e4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DividendsCash"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_DividendsCash_17d44d82-0b9d-4732-8d5c-23bd47b8b0e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d8ac93a0-6581-483d-85c5-4a08e67f009e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_NetIncomeLoss_d8ac93a0-6581-483d-85c5-4a08e67f009e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_6405f4e2-6f83-4bde-9e97-adcc48a373cf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_6405f4e2-6f83-4bde-9e97-adcc48a373cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_64a8a809-5f95-4bb9-843c-7986abc13887" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_64a8a809-5f95-4bb9-843c-7986abc13887" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_e1717e8e-a213-460f-b0f3-7697166804cb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_e1717e8e-a213-460f-b0f3-7697166804cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_870957cd-3a5b-4d34-9bf1-307ca5f1029e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_870957cd-3a5b-4d34-9bf1-307ca5f1029e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_1e188e3b-4d80-44e2-8ddc-e3400d6af6d1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_CommonStockSharesIssued_1e188e3b-4d80-44e2-8ddc-e3400d6af6d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_a9c39291-6ad3-4aa5-a2da-78634cbe2f23" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7e2a6ed4-dd84-41b6-94a0-fdb8f63768d9" xlink:to="loc_us-gaap_StockholdersEquity_a9c39291-6ad3-4aa5-a2da-78634cbe2f23" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical" xlink:type="simple" xlink:href="cgnx-20200628.xsd#ConsolidatedStatementofShareholdersEquityParenthetical"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_87088585-98c9-435b-a332-3198be49899d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_ed8323e4-d23f-42b6-9711-a38db26b7ea1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_87088585-98c9-435b-a332-3198be49899d" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_ed8323e4-d23f-42b6-9711-a38db26b7ea1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SummaryofSignificantAccountingPolicies"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_b7bb2916-4abc-4d05-99f4-b4022e0b3a88" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock_6e01fd8c-1423-4493-95af-fd3b07cf6324" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_b7bb2916-4abc-4d05-99f4-b4022e0b3a88" xlink:to="loc_us-gaap_SignificantAccountingPoliciesTextBlock_6e01fd8c-1423-4493-95af-fd3b07cf6324" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SummaryofSignificantAccountingPoliciesPolicies"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_b2e3ad27-2fca-4097-925c-f35f00ff27d6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_6f0d611b-3c32-4e6a-979c-98935784af32" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_b2e3ad27-2fca-4097-925c-f35f00ff27d6" xlink:to="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_6f0d611b-3c32-4e6a-979c-98935784af32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivablesPolicyTextBlock_95d21820-d5f1-4caf-9d8c-18465315f2d6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_b2e3ad27-2fca-4097-925c-f35f00ff27d6" xlink:to="loc_us-gaap_ReceivablesPolicyTextBlock_95d21820-d5f1-4caf-9d8c-18465315f2d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_a8344901-749a-4b2c-80ae-0300389a2ad3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_b2e3ad27-2fca-4097-925c-f35f00ff27d6" xlink:to="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_a8344901-749a-4b2c-80ae-0300389a2ad3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/NewPronouncements" xlink:type="simple" xlink:href="cgnx-20200628.xsd#NewPronouncements"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/NewPronouncements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_aa0ca8a0-39cc-4f51-88a3-1221168b819b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_efa7ed10-8d2e-473c-b571-94f18042e0c8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_aa0ca8a0-39cc-4f51-88a3-1221168b819b" xlink:to="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_efa7ed10-8d2e-473c-b571-94f18042e0c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurements" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurements"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/FairValueMeasurements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_d70c0593-5d81-400d-90ce-84be5ed7c7bf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock_69b570d6-77f5-4f84-aecb-a9ac9e04f4a5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_d70c0593-5d81-400d-90ce-84be5ed7c7bf" xlink:to="loc_us-gaap_FairValueDisclosuresTextBlock_69b570d6-77f5-4f84-aecb-a9ac9e04f4a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_c485a4ca-4e0e-4acd-8cbe-e5d8c6336bb2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_f88926ac-2b7e-46a2-8cb0-b907e0a90167" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_c485a4ca-4e0e-4acd-8cbe-e5d8c6336bb2" xlink:to="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_f88926ac-2b7e-46a2-8cb0-b907e0a90167" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_1b761b7a-1102-4233-9f86-120b5c74224d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_c485a4ca-4e0e-4acd-8cbe-e5d8c6336bb2" xlink:to="loc_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_1b761b7a-1102-4233-9f86-120b5c74224d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_7e2dee66-da81-490c-9aa3-642f318f1c5f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_7e2dee66-da81-490c-9aa3-642f318f1c5f" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_b7950ca8-0837-4b63-b982-832dc899d105" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_b7950ca8-0837-4b63-b982-832dc899d105" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_b7950ca8-0837-4b63-b982-832dc899d105" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_5ecf2d86-0919-47c0-b2bf-063adca78092" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_5ecf2d86-0919-47c0-b2bf-063adca78092" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_818554f2-d2af-4942-bee7-c24f3f545aaa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_818554f2-d2af-4942-bee7-c24f3f545aaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_24a3e5f2-4e4b-4aa4-9228-f3a4fc3eeddb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_7236efd7-1055-47f4-a4ba-80eb227ff73d" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_24a3e5f2-4e4b-4aa4-9228-f3a4fc3eeddb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_924f057e-cc1f-4246-ad1a-975878decbcc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_924f057e-cc1f-4246-ad1a-975878decbcc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_0d4ba605-513a-4c27-aba0-964736042698" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_924f057e-cc1f-4246-ad1a-975878decbcc" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_0d4ba605-513a-4c27-aba0-964736042698" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_02a47421-7b9c-45cc-883f-c7e335e05401" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_0d4ba605-513a-4c27-aba0-964736042698" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_02a47421-7b9c-45cc-883f-c7e335e05401" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_45c723b0-d1b3-410a-8f46-9b34da3778b3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:to="loc_us-gaap_FinancialInstrumentAxis_45c723b0-d1b3-410a-8f46-9b34da3778b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_45c723b0-d1b3-410a-8f46-9b34da3778b3" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_ba4cefe4-6ab9-4ed5-b939-ebcdf767328a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_ba4cefe4-6ab9-4ed5-b939-ebcdf767328a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_a56a3d75-440b-46ba-8c89-67009626e3d6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_a56a3d75-440b-46ba-8c89-67009626e3d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_9be72582-385b-431c-858f-8bad64b7efa2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_9be72582-385b-431c-858f-8bad64b7efa2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_be1286a9-edc5-47b0-8339-7599159327fa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_be1286a9-edc5-47b0-8339-7599159327fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_f7a37558-ac99-45bc-b8b0-e8ca2c8396e4" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_cgnx_AgencyBondsMember_f7a37558-ac99-45bc-b8b0-e8ca2c8396e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_8a2fe9b2-793b-42fa-917d-eb7f4d339d69" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_4048c8d6-c047-4296-94d7-b49bbe598a16" xlink:to="loc_us-gaap_MunicipalBondsMember_8a2fe9b2-793b-42fa-917d-eb7f4d339d69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c59cd419-c048-4020-ac61-c3840ed43560" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CertificateOfDepositFairValueDisclosure_910e86fd-ebcb-4e3b-9639-ae227dd20bc2" xlink:href="cgnx-20200628.xsd#cgnx_CertificateOfDepositFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:to="loc_cgnx_CertificateOfDepositFairValueDisclosure_910e86fd-ebcb-4e3b-9639-ae227dd20bc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_7d2325da-1b15-4d65-bfcc-07973252412f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_7d2325da-1b15-4d65-bfcc-07973252412f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d3b9e052-46c5-4ce9-a7bc-c85a5490ede1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d3b9e052-46c5-4ce9-a7bc-c85a5490ede1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_2eb4d9d0-aac2-47ea-9e37-1373dd2277f2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_84d8e7b7-af47-442c-b15a-fa7d7ccacc04" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_2eb4d9d0-aac2-47ea-9e37-1373dd2277f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ffc38099-7011-4a51-b5e0-6a8915bb8892" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_6b0e8294-b391-4f4c-949a-10154d7f2189" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_6b0e8294-b391-4f4c-949a-10154d7f2189" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_fbd8b133-0ca9-40e9-806f-09858e8d225b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_705fbbc5-cb9b-4597-b8b8-25e72ee2e9b2" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_fbd8b133-0ca9-40e9-806f-09858e8d225b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/FairValueMeasurementsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#FairValueMeasurementsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/FairValueMeasurementsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_7b4d346f-8ff9-471c-aa8c-765d9a84a405" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_7b4d346f-8ff9-471c-aa8c-765d9a84a405" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fb216895-cada-443d-a357-5edcf8149af5" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_srt_RangeAxis_fb216895-cada-443d-a357-5edcf8149af5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_fb216895-cada-443d-a357-5edcf8149af5" xlink:to="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_625bebd5-7c9b-4b2d-9df7-5ac45b76a0fb" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:to="loc_srt_MinimumMember_625bebd5-7c9b-4b2d-9df7-5ac45b76a0fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d5aec988-f836-4197-b80c-a763d219a1e0" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_7cca6647-0a3b-4167-85db-b66c88c436d4" xlink:to="loc_srt_MaximumMember_d5aec988-f836-4197-b80c-a763d219a1e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_7ea3752d-0235-4032-bcb6-1232f1552b76" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_7ea3752d-0235-4032-bcb6-1232f1552b76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7ea3752d-0235-4032-bcb6-1232f1552b76" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ChiaroTechnologiesLLCMember_84fc982a-be5a-43bf-acfc-1ca082a5fef7" xlink:href="cgnx-20200628.xsd#cgnx_ChiaroTechnologiesLLCMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:to="loc_cgnx_ChiaroTechnologiesLLCMember_84fc982a-be5a-43bf-acfc-1ca082a5fef7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GViVenturesInc.Member_123f6cbe-88fd-49ed-aee3-e4516e23d6b3" xlink:href="cgnx-20200628.xsd#cgnx_GViVenturesInc.Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6db1a07c-3d34-45bb-875b-ac31d6e0e6b6" xlink:to="loc_cgnx_GViVenturesInc.Member_123f6cbe-88fd-49ed-aee3-e4516e23d6b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_58363e0b-6763-4d74-a73f-54471652264e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_58363e0b-6763-4d74-a73f-54471652264e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_67a516c5-8490-4623-bbdc-0cc77dff0c53" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_58363e0b-6763-4d74-a73f-54471652264e" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_67a516c5-8490-4623-bbdc-0cc77dff0c53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_d7a78a13-5155-4bd4-90a6-7830270d5de6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_67a516c5-8490-4623-bbdc-0cc77dff0c53" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_d7a78a13-5155-4bd4-90a6-7830270d5de6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_140a5669-3a91-4076-8026-8153411a8c36" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_140a5669-3a91-4076-8026-8153411a8c36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_d70ba143-e8e9-412d-8a11-e4a324eb563d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_140a5669-3a91-4076-8026-8153411a8c36" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_d70ba143-e8e9-412d-8a11-e4a324eb563d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_8fb20c37-f7a7-428f-92cd-c5a46d9e5dbb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_d70ba143-e8e9-412d-8a11-e4a324eb563d" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_8fb20c37-f7a7-428f-92cd-c5a46d9e5dbb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_16e510d7-ad22-47b6-9c11-55a8db1300db" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_16e510d7-ad22-47b6-9c11-55a8db1300db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_16e510d7-ad22-47b6-9c11-55a8db1300db" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpenseMember_5efefe40-1fa9-43ed-8a02-51ee65f10126" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpenseMember_5efefe40-1fa9-43ed-8a02-51ee65f10126" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringChargesMember_5f6201d2-7bf1-4e79-a7c3-d4a2677642aa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringChargesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_13220156-6f00-4627-88f8-63d7e88c44d9" xlink:to="loc_us-gaap_RestructuringChargesMember_5f6201d2-7bf1-4e79-a7c3-d4a2677642aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_5269dbce-0bdf-4ea3-a7ad-386e0556a29a" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_0ed0350c-f7e3-4f1a-bde2-72c875bf3347" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_0ed0350c-f7e3-4f1a-bde2-72c875bf3347" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_afda5dbc-113a-4c81-ba08-93dca7d9c88f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_afda5dbc-113a-4c81-ba08-93dca7d9c88f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueAdjustment_3bfd536a-e3a7-457c-a54f-013817f32178" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesFairValueAdjustment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_LiabilitiesFairValueAdjustment_3bfd536a-e3a7-457c-a54f-013817f32178" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_d23f319c-a071-4bb7-8106-18a5b73552c8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow_d23f319c-a071-4bb7-8106-18a5b73552c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_8751bb51-ca7b-4eb6-b042-c63333785dcb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_8751bb51-ca7b-4eb6-b042-c63333785dcb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_201306bc-6eaa-41bb-9aa6-db079bb97221" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_201306bc-6eaa-41bb-9aa6-db079bb97221" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_aa42729e-2f48-442a-bb36-48dabfadc66b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_aa42729e-2f48-442a-bb36-48dabfadc66b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_996f1300-5ef5-49af-8cc5-e0baa639c7c2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_996f1300-5ef5-49af-8cc5-e0baa639c7c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_21c01975-a6ba-4930-8bef-b351a8867569" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_d9720651-3f40-4d0a-a53f-78606240942f" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_21c01975-a6ba-4930-8bef-b351a8867569" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestments"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_98814035-1cdd-43c5-972f-1d0af1851ca0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_7ff8848b-482b-4a0b-ae61-3c3560f27b4a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_98814035-1cdd-43c5-972f-1d0af1851ca0" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_7ff8848b-482b-4a0b-ae61-3c3560f27b4a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_ed22d283-f3ba-4878-ae89-5aa2ec85ed51" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock_71b0680c-b10f-45ff-a5fd-d761c5704709" xlink:href="cgnx-20200628.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_ed22d283-f3ba-4878-ae89-5aa2ec85ed51" xlink:to="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock_71b0680c-b10f-45ff-a5fd-d761c5704709" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_257550a5-5bbe-4f9a-aa10-373e4b14a9f6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_ed22d283-f3ba-4878-ae89-5aa2ec85ed51" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_257550a5-5bbe-4f9a-aa10-373e4b14a9f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_373d87bd-67b8-4b68-8580-411d5808e50c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_ed22d283-f3ba-4878-ae89-5aa2ec85ed51" xlink:to="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_373d87bd-67b8-4b68-8580-411d5808e50c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock_7de7e5f8-b704-45b9-b21d-6eba3da376bc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_ed22d283-f3ba-4878-ae89-5aa2ec85ed51" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock_7de7e5f8-b704-45b9-b21d-6eba3da376bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_bce00b20-e6b5-4375-9189-63e37d108040" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_ed22d283-f3ba-4878-ae89-5aa2ec85ed51" xlink:to="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_bce00b20-e6b5-4375-9189-63e37d108040" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_47456ae5-e3dc-4e47-9683-a84e2e331b99" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_72a5b237-cfb9-4c7e-843c-dff39e236784" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_47456ae5-e3dc-4e47-9683-a84e2e331b99" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_72a5b237-cfb9-4c7e-843c-dff39e236784" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_c410ac04-692e-49f1-9a05-0b428ce5af8f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_72a5b237-cfb9-4c7e-843c-dff39e236784" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_c410ac04-692e-49f1-9a05-0b428ce5af8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_b9ea3556-b791-4dfb-ae83-4cab37ecb4ef" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_c410ac04-692e-49f1-9a05-0b428ce5af8f" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_b9ea3556-b791-4dfb-ae83-4cab37ecb4ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherCurrentAssetsMember_c6490220-4d01-42f0-8067-6d5294b125eb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherCurrentAssetsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_b9ea3556-b791-4dfb-ae83-4cab37ecb4ef" xlink:to="loc_us-gaap_OtherCurrentAssetsMember_c6490220-4d01-42f0-8067-6d5294b125eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_72a5b237-cfb9-4c7e-843c-dff39e236784" xlink:to="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestReceivable_05a9bc75-48da-415f-a0e3-7b1100509f3d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestReceivable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_InterestReceivable_05a9bc75-48da-415f-a0e3-7b1100509f3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_4bb48ada-3e1e-48bc-b04f-dc64c5807345" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_4bb48ada-3e1e-48bc-b04f-dc64c5807345" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_694eb9ef-2d7b-4c2e-ac28-bb0a821ea260" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedGains"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains_694eb9ef-2d7b-4c2e-ac28-bb0a821ea260" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_627b06ed-c873-434a-b00a-f66cb861639d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_94f2bbcd-772d-4d78-bec9-a7b85b7a3f7c" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses_627b06ed-c873-434a-b00a-f66cb861639d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_223a01a2-f0a3-40c4-b8ed-e4763af7ec48" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_a5d6fd07-4c83-470f-8ca4-88e53acc60af" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_223a01a2-f0a3-40c4-b8ed-e4763af7ec48" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_a5d6fd07-4c83-470f-8ca4-88e53acc60af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_51bf18f1-9bcb-4493-b1ec-625628d8cf18" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_a5d6fd07-4c83-470f-8ca4-88e53acc60af" xlink:to="loc_us-gaap_FinancialInstrumentAxis_51bf18f1-9bcb-4493-b1ec-625628d8cf18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_51bf18f1-9bcb-4493-b1ec-625628d8cf18" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_3593f5bd-be39-465b-bac8-7a5cff4b5cc6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_3593f5bd-be39-465b-bac8-7a5cff4b5cc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_677bebf0-396d-4fbe-8219-840ae9f55619" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_677bebf0-396d-4fbe-8219-840ae9f55619" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_47f36b48-fe15-4e51-9aad-af63e4a594f0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_47f36b48-fe15-4e51-9aad-af63e4a594f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CertificatesOfDepositMember_652bd603-2bd6-4a69-be2f-1696410a3ac1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CertificatesOfDepositMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_CertificatesOfDepositMember_652bd603-2bd6-4a69-be2f-1696410a3ac1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_f14cb72a-1465-41e9-9908-6cf48b3e4439" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_f14cb72a-1465-41e9-9908-6cf48b3e4439" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_33b71bd2-90db-45c2-915a-ed0d6aeada5f" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_cgnx_AgencyBondsMember_33b71bd2-90db-45c2-915a-ed0d6aeada5f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_63d2b801-820a-48ba-b7b2-ce39a02f214a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_MunicipalBondsMember_63d2b801-820a-48ba-b7b2-ce39a02f214a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtMember_27366c59-82d9-440e-82dd-e6626b8036bd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b2a81715-20a9-4bbb-a8d2-3e5e0cc3bf7e" xlink:to="loc_us-gaap_SovereignDebtMember_27366c59-82d9-440e-82dd-e6626b8036bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_a5d6fd07-4c83-470f-8ca4-88e53acc60af" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_59d45cf7-1ecd-4d47-ba1f-fd78f50dc18d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Cash"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_Cash_59d45cf7-1ecd-4d47-ba1f-fd78f50dc18d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_10c0f3c5-4756-4d1d-b84f-a54871f10760" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_10c0f3c5-4756-4d1d-b84f-a54871f10760" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5932d9f5-0789-4abb-9ab9-8be743c54578" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5932d9f5-0789-4abb-9ab9-8be743c54578" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_18c8e4f0-759b-4538-8935-54e01c115d03" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_18c8e4f0-759b-4538-8935-54e01c115d03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_afbc3ccf-aec7-4690-91a0-6dd15728386a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_afbc3ccf-aec7-4690-91a0-6dd15728386a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_73698828-da89-4fa8-97e4-cd959ad36e44" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_us-gaap_LongTermInvestments_73698828-da89-4fa8-97e4-cd959ad36e44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_79ccc271-1e8f-4589-8895-21c0405cbb35" xlink:href="cgnx-20200628.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_ae1340d3-31ad-4676-8a7a-9923a955c613" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_79ccc271-1e8f-4589-8895-21c0405cbb35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_26e7884a-4636-4467-8073-061badb64584" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_26e7884a-4636-4467-8073-061badb64584" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_db5f763b-a49c-488a-a5e7-5a988216b1bd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:to="loc_us-gaap_FinancialInstrumentAxis_db5f763b-a49c-488a-a5e7-5a988216b1bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_db5f763b-a49c-488a-a5e7-5a988216b1bd" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_7478473e-98c9-44b2-8d90-668addf3dc39" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_cgnx_AgencyBondsMember_7478473e-98c9-44b2-8d90-668addf3dc39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_cfbb851f-e0b8-4537-a931-cb413370ee9d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_cfbb851f-e0b8-4537-a931-cb413370ee9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_a8928aa5-7a39-42ec-bc8a-74f44f173848" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_a8928aa5-7a39-42ec-bc8a-74f44f173848" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_a701dd8c-08c9-4a1f-bef7-57e49947e044" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_a701dd8c-08c9-4a1f-bef7-57e49947e044" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_7e4ea056-5424-443f-8187-d10fcfe0b08a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_7e4ea056-5424-443f-8187-d10fcfe0b08a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_7a25a27d-e2c6-4635-89c9-50ab5a10fb78" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5771c9ed-3652-41c1-b8d5-7ad26709a919" xlink:to="loc_us-gaap_MunicipalBondsMember_7a25a27d-e2c6-4635-89c9-50ab5a10fb78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis_87615e52-4cbc-4f5e-a917-cc4d623c392f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:to="loc_us-gaap_InvestmentTypeAxis_87615e52-4cbc-4f5e-a917-cc4d623c392f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeAxis_87615e52-4cbc-4f5e-a917-cc4d623c392f" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_2aab153a-e7fc-4158-ad0a-f819a006a649" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_2aab153a-e7fc-4158-ad0a-f819a006a649" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_c87a1836-d9bf-468e-af91-5e71e22488fb" xlink:href="cgnx-20200628.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_f1bfd335-0177-47e1-9f97-261fa0c69a51" xlink:to="loc_cgnx_LongTermInvestmentsMember_c87a1836-d9bf-468e-af91-5e71e22488fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_ba54d916-6a97-4543-a6f7-f40fd578c612" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_66116860-5fd0-4cdd-ad61-787ad9a514bd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_66116860-5fd0-4cdd-ad61-787ad9a514bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_58fb9982-6f62-423d-a602-9160485c67b7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_58fb9982-6f62-423d-a602-9160485c67b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_87282782-27c2-4069-9728-11717a7c6424" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_87282782-27c2-4069-9728-11717a7c6424" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_dc769c84-941e-4e43-82a6-2efa22fecfe9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_880ec657-98dd-4006-be5a-9a25554a617a" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_dc769c84-941e-4e43-82a6-2efa22fecfe9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_1de434ae-c712-4b95-b16c-ef0de2250978" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_c7938238-1cdc-4123-a710-dcba71601a81" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_1de434ae-c712-4b95-b16c-ef0de2250978" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_c7938238-1cdc-4123-a710-dcba71601a81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_1868371e-1d64-47c5-b647-2ba21a79d8d0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_c7938238-1cdc-4123-a710-dcba71601a81" xlink:to="loc_us-gaap_FinancialInstrumentAxis_1868371e-1d64-47c5-b647-2ba21a79d8d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_1868371e-1d64-47c5-b647-2ba21a79d8d0" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_5ae04afb-82ca-4b1d-b506-ecd8a770fe47" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_5ae04afb-82ca-4b1d-b506-ecd8a770fe47" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_0bcdd5b7-dd3f-4c35-b8a1-128190a1c9af" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_cgnx_AgencyBondsMember_0bcdd5b7-dd3f-4c35-b8a1-128190a1c9af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_b455e3d6-ae69-4ce2-9d36-affdb85b4414" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_b455e3d6-ae69-4ce2-9d36-affdb85b4414" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_94619be4-4f24-424f-9ddd-1172830f2f6a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_94619be4-4f24-424f-9ddd-1172830f2f6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_278d3cc1-d18a-43fa-acd8-95bc785ca270" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_278d3cc1-d18a-43fa-acd8-95bc785ca270" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_161e9468-89d8-472a-8d5b-d149fc34e02a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5f2c5033-de27-4138-97f3-7ac1a7755135" xlink:to="loc_us-gaap_MunicipalBondsMember_161e9468-89d8-472a-8d5b-d149fc34e02a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_c7938238-1cdc-4123-a710-dcba71601a81" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_6e4b55e2-71b5-4d84-a344-e21f28f8253d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_6e4b55e2-71b5-4d84-a344-e21f28f8253d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_9200b61d-df5f-4067-b683-9c68f14ec2b7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_9200b61d-df5f-4067-b683-9c68f14ec2b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_379ed7d6-5001-4116-8a77-eb4a88210656" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_379ed7d6-5001-4116-8a77-eb4a88210656" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_81eeb91d-c348-42aa-997a-327c75e20014" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_81eeb91d-c348-42aa-997a-327c75e20014" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_e416fac0-aa5d-4a24-9216-2f9db4d50ce4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_e416fac0-aa5d-4a24-9216-2f9db4d50ce4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_f61dd68e-f12d-4644-a8f6-6e9ebd10148b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_f61dd68e-f12d-4644-a8f6-6e9ebd10148b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_e1dc5913-d63b-41d2-87fe-ef6165d6acb6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_e1dc5913-d63b-41d2-87fe-ef6165d6acb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_416f2bfb-4492-4133-9372-b6619061294b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e90fec24-346b-4e80-9927-462012316e6e" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_416f2bfb-4492-4133-9372-b6619061294b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_83350e6d-f207-4d8a-b510-be2b7c354c31" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_122e8acc-58e4-4742-be4e-607a03364773" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_83350e6d-f207-4d8a-b510-be2b7c354c31" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_122e8acc-58e4-4742-be4e-607a03364773" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_ff7ead48-b13c-4d9e-926a-a1d7b5e1c610" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_122e8acc-58e4-4742-be4e-607a03364773" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_ff7ead48-b13c-4d9e-926a-a1d7b5e1c610" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_126bb236-6659-44e0-bdc7-286781a036e6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_122e8acc-58e4-4742-be4e-607a03364773" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal_126bb236-6659-44e0-bdc7-286781a036e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_25679b58-a50b-45c1-9842-5dabb4394367" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_122e8acc-58e4-4742-be4e-607a03364773" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery_25679b58-a50b-45c1-9842-5dabb4394367" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_62939b38-d8f6-4b7f-9a1d-12e462a822c4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_122e8acc-58e4-4742-be4e-607a03364773" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_62939b38-d8f6-4b7f-9a1d-12e462a822c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_c95f84de-11e4-4b87-9809-8c1bb48d4c8f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward_122e8acc-58e4-4742-be4e-607a03364773" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_c95f84de-11e4-4b87-9809-8c1bb48d4c8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_e8584746-823c-4f5f-a82d-9392637f9b3a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_83350e6d-f207-4d8a-b510-be2b7c354c31" xlink:to="loc_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale_e8584746-823c-4f5f-a82d-9392637f9b3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_3e09623e-6065-4384-9ab1-a2d8a2830bbe" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_30263ec0-d13c-42c9-9185-780265285ec4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_3e09623e-6065-4384-9ab1-a2d8a2830bbe" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_30263ec0-d13c-42c9-9185-780265285ec4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_30263ec0-d13c-42c9-9185-780265285ec4" xlink:to="loc_us-gaap_FinancialInstrumentAxis_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_d51e18e4-a5aa-47f2-b3c2-0d55bb5f11d0" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_7e2b9dbe-e9db-4534-ad26-868e442ea895" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_7e2b9dbe-e9db-4534-ad26-868e442ea895" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_340e75bd-2be5-44f7-b6d6-376c2aa41eff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_340e75bd-2be5-44f7-b6d6-376c2aa41eff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_66bf9109-2d56-40b6-9af6-15262f8300a4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_66bf9109-2d56-40b6-9af6-15262f8300a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_ffa5a086-0415-4a1a-9fcf-1a58522146d0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_ffa5a086-0415-4a1a-9fcf-1a58522146d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_75525e79-a455-45dd-aa29-f13a687bfbe1" xlink:href="cgnx-20200628.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_cgnx_AgencyBondsMember_75525e79-a455-45dd-aa29-f13a687bfbe1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_8be3f5cf-dfb5-4707-be49-4cc2590d8bfa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_c4276be9-e3da-425e-b662-3edaea102300" xlink:to="loc_us-gaap_MunicipalBondsMember_8be3f5cf-dfb5-4707-be49-4cc2590d8bfa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_30263ec0-d13c-42c9-9185-780265285ec4" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_1829aed8-5964-43d4-bb44-ffd72526e089" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_1829aed8-5964-43d4-bb44-ffd72526e089" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_69c84840-86c6-4091-a6c4-e1185f222069" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_69c84840-86c6-4091-a6c4-e1185f222069" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_08deefdb-a1f5-4fa5-89e9-c7cf520d5dc0" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_08deefdb-a1f5-4fa5-89e9-c7cf520d5dc0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_8e0674e0-fa61-4a05-9229-73e736d793b4" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_8e0674e0-fa61-4a05-9229-73e736d793b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_3287883d-01e6-4866-b73f-875ebe4be071" xlink:href="cgnx-20200628.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_3287883d-01e6-4866-b73f-875ebe4be071" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_2747ce3a-04a6-4c40-9b94-f7d787a53ac6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_4257ca38-ee05-41ac-b2b5-bd2272ed6cb5" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_2747ce3a-04a6-4c40-9b94-f7d787a53ac6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/Inventories" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Inventories"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/Inventories" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_50d0476c-0ce3-4851-869d-24ac2076e28c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock_10425556-c8d9-4c84-bf36-d9a344259ede" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_50d0476c-0ce3-4851-869d-24ac2076e28c" xlink:to="loc_us-gaap_InventoryDisclosureTextBlock_10425556-c8d9-4c84-bf36-d9a344259ede" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/InventoriesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_1c409854-f16d-4981-8e8c-8a958b491886" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_5095c5db-8da6-43e8-8a33-6b8e2bb8fc49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_1c409854-f16d-4981-8e8c-8a958b491886" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_5095c5db-8da6-43e8-8a33-6b8e2bb8fc49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesScheduleofInventoriesDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_85b38e34-572e-4685-90c4-0e15a70b6d4c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_21e0a181-430d-4b4d-88be-988fa825125a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_85b38e34-572e-4685-90c4-0e15a70b6d4c" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_21e0a181-430d-4b4d-88be-988fa825125a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_def0c073-c6c2-4c49-9fbc-6a1fcaff2645" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_85b38e34-572e-4685-90c4-0e15a70b6d4c" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_def0c073-c6c2-4c49-9fbc-6a1fcaff2645" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_593cd024-ecd1-4893-a473-fdc047f4c1c1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_85b38e34-572e-4685-90c4-0e15a70b6d4c" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_593cd024-ecd1-4893-a473-fdc047f4c1c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_2807abcf-04e5-4486-aca1-02c599151337" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_85b38e34-572e-4685-90c4-0e15a70b6d4c" xlink:to="loc_us-gaap_InventoryNet_2807abcf-04e5-4486-aca1-02c599151337" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/InventoriesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#InventoriesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/InventoriesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_3d605e46-541a-48e2-994c-78edad8291c2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_c8f6c849-4946-420d-a9b3-8e52cd177626" xlink:href="cgnx-20200628.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_3d605e46-541a-48e2-994c-78edad8291c2" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_c8f6c849-4946-420d-a9b3-8e52cd177626" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/Leases" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Leases"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/Leases" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_7e63ba22-18ed-40ca-bf87-02664c0f3281" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock_716dafc3-0151-4a91-918a-e87089816e1b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_7e63ba22-18ed-40ca-bf87-02664c0f3281" xlink:to="loc_us-gaap_LesseeOperatingLeasesTextBlock_716dafc3-0151-4a91-918a-e87089816e1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/LeasesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_96eff0ec-de16-4fb5-8b5d-eadb6232b25e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_6e7ec1ec-6de8-4959-bae7-3672d2045979" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_96eff0ec-de16-4fb5-8b5d-eadb6232b25e" xlink:to="loc_us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_6e7ec1ec-6de8-4959-bae7-3672d2045979" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_214f1369-21bd-4c0e-958f-3a32df1889e3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_96eff0ec-de16-4fb5-8b5d-eadb6232b25e" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_214f1369-21bd-4c0e-958f-3a32df1889e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/LeasesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_5ef026f2-d7ee-4731-90a5-0cf40ebd27e4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseLiability_5ef026f2-d7ee-4731-90a5-0cf40ebd27e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_e1762f78-adcf-4e1a-8386-0100f5302408" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_e1762f78-adcf-4e1a-8386-0100f5302408" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_cf857a29-6b00-4d27-a4c5-a4a6e90155db" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_cf857a29-6b00-4d27-a4c5-a4a6e90155db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_a7c75bb8-9e67-4e01-beec-d6dfdbd60581" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_a7c75bb8-9e67-4e01-beec-d6dfdbd60581" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_e240bd5e-aabb-4a47-b750-348d4d2f21da" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseCost_e240bd5e-aabb-4a47-b750-348d4d2f21da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_4863f60f-32d0-49a6-8a9c-a803d1580b07" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeasePayments_4863f60f-32d0-49a6-8a9c-a803d1580b07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost_a68dee27-0c0b-4217-9397-8e75d9a9d22e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_LeaseCost_a68dee27-0c0b-4217-9397-8e75d9a9d22e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_91b0913a-b1ae-4b2d-8d0b-027ac6dded47" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_91b0913a-b1ae-4b2d-8d0b-027ac6dded47" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_38cfff40-bf2a-40f8-941a-4bd1a91badc9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_38cfff40-bf2a-40f8-941a-4bd1a91badc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_c0fca8ee-447e-404c-b529-553372d84252" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_c0fca8ee-447e-404c-b529-553372d84252" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_9742e8e4-e7b4-48fe-8cb8-5de454dc92f7" xlink:href="cgnx-20200628.xsd#cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_9742e8e4-e7b4-48fe-8cb8-5de454dc92f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome_2218997d-38fb-4a24-8a22-1501e0f06ca9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLeaseIncome"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a5a5d131-ec79-4f10-a9eb-4f1587c2574a" xlink:to="loc_us-gaap_OperatingLeaseLeaseIncome_2218997d-38fb-4a24-8a22-1501e0f06ca9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_dd1c9c8b-4667-42ad-85ce-426cf903d353" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_dd1c9c8b-4667-42ad-85ce-426cf903d353" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_7aaf69de-adc3-4009-bf09-c41d5f5363a4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_7aaf69de-adc3-4009-bf09-c41d5f5363a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_d784bce7-b66b-464d-ba54-306e584f56cc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_d784bce7-b66b-464d-ba54-306e584f56cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_7cd67b09-6227-4a96-a8d3-963100f67309" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_7cd67b09-6227-4a96-a8d3-963100f67309" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_c8e6ff26-6b82-4280-b7cc-2f62b30f09c5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_c8e6ff26-6b82-4280-b7cc-2f62b30f09c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_599bef43-a16e-4776-ba0f-a9e02153ae67" xlink:href="cgnx-20200628.xsd#cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix_599bef43-a16e-4776-ba0f-a9e02153ae67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix_11b97131-82f0-4881-9207-1a4364b0e9e9" xlink:href="cgnx-20200628.xsd#cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix_11b97131-82f0-4881-9207-1a4364b0e9e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_3b3891da-1615-4a87-a653-098369e5bede" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_9c4748a2-83ec-4f6b-81a2-c3c2f556b1f6" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_3b3891da-1615-4a87-a653-098369e5bede" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillNotes" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillNotes"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/GoodwillNotes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_21c19140-7df0-462a-b33b-5c94e4b2062d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock_d9bb5f96-70ba-4499-8c3c-8383a8a15036" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_21c19140-7df0-462a-b33b-5c94e4b2062d" xlink:to="loc_us-gaap_GoodwillDisclosureTextBlock_d9bb5f96-70ba-4499-8c3c-8383a8a15036" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/GoodwillTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_779d95a5-2b88-4789-9ab7-562744fef321" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_b96b0468-5307-42ae-9d0a-56336212fbde" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_779d95a5-2b88-4789-9ab7-562744fef321" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_b96b0468-5307-42ae-9d0a-56336212fbde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/GoodwillDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#GoodwillDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/GoodwillDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_6bbd84fb-df97-496a-aada-10049bc62f0a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_5c9f4443-4479-4b83-a75f-200234e8048b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_6bbd84fb-df97-496a-aada-10049bc62f0a" xlink:to="loc_us-gaap_GoodwillRollForward_5c9f4443-4479-4b83-a75f-200234e8048b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_43263b19-e2be-448f-9d5c-165d3df1d550" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_5c9f4443-4479-4b83-a75f-200234e8048b" xlink:to="loc_us-gaap_Goodwill_43263b19-e2be-448f-9d5c-165d3df1d550" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_570ff068-06cc-4d3d-9cf0-a1cec9877dc2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_5c9f4443-4479-4b83-a75f-200234e8048b" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_570ff068-06cc-4d3d-9cf0-a1cec9877dc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_3632562f-3942-4f0b-b956-01320a6aa923" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_5c9f4443-4479-4b83-a75f-200234e8048b" xlink:to="loc_us-gaap_Goodwill_3632562f-3942-4f0b-b956-01320a6aa923" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssets" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssets"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/IntangibleAssets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_8cbc1794-8d96-462c-b754-85d3454c3714" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_65314b16-40d2-4958-a67a-e557f14a28da" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_8cbc1794-8d96-462c-b754-85d3454c3714" xlink:to="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_65314b16-40d2-4958-a67a-e557f14a28da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/IntangibleAssetsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_4d7a0920-2078-4e8c-a4e1-62e819a773f0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_357f182c-67ac-44d7-82e3-326b1b1a6012" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_4d7a0920-2078-4e8c-a4e1-62e819a773f0" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_357f182c-67ac-44d7-82e3-326b1b1a6012" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_fb1f7faf-1d49-43a6-bf5a-fb5d80c397dd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_4d7a0920-2078-4e8c-a4e1-62e819a773f0" xlink:to="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_fb1f7faf-1d49-43a6-bf5a-fb5d80c397dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/IntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_a9ef1c18-b624-41dd-85ad-d6ab586c1dc4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_a9ef1c18-b624-41dd-85ad-d6ab586c1dc4" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8f4debf6-21bb-41ba-8005-c5bc5ac95dde" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8f4debf6-21bb-41ba-8005-c5bc5ac95dde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_8f4debf6-21bb-41ba-8005-c5bc5ac95dde" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_b29f0afa-d0bb-4bcc-b755-09971c84eb49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DistributionRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_DistributionRightsMember_b29f0afa-d0bb-4bcc-b755-09971c84eb49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_a4f6bc5b-dcae-405d-a1cd-df68322169a0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_a4f6bc5b-dcae-405d-a1cd-df68322169a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_7ba660fa-326a-4416-a676-543636f4cff1" xlink:href="cgnx-20200628.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_7ba660fa-326a-4416-a676-543636f4cff1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_47c4848f-8c4c-48f9-acc8-b0ed114336d1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_47c4848f-8c4c-48f9-acc8-b0ed114336d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_e5458e9b-ed94-4816-9815-cee157c8aaed" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_e5458e9b-ed94-4816-9815-cee157c8aaed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_f511eb63-ac36-49bb-960e-916dad08e82a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_us-gaap_TrademarksMember_f511eb63-ac36-49bb-960e-916dad08e82a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember_c7828506-a870-4eee-aae8-a8188314f23a" xlink:href="cgnx-20200628.xsd#cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_e66f0bbb-07a0-4991-8bef-310921c3588b" xlink:to="loc_cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember_c7828506-a870-4eee-aae8-a8188314f23a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_1753bcea-4b32-41c1-9ae9-28f50036e92a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_1753bcea-4b32-41c1-9ae9-28f50036e92a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_1753bcea-4b32-41c1-9ae9-28f50036e92a" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabMember_8a970acd-33b4-46ce-8ec2-b925aaf2106e" xlink:href="cgnx-20200628.xsd#cgnx_SualabMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:to="loc_cgnx_SualabMember_8a970acd-33b4-46ce-8ec2-b925aaf2106e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EnShapeGmbHMember_95647e4c-4963-4e16-b86f-fedbe9a3139a" xlink:href="cgnx-20200628.xsd#cgnx_EnShapeGmbHMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_42d19ea9-748d-4b6a-885a-93c7d71e8ec7" xlink:to="loc_cgnx_EnShapeGmbHMember_95647e4c-4963-4e16-b86f-fedbe9a3139a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_34c68695-71a0-45f7-9206-dc0441e98ba1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_ce223a2a-a4f5-4388-83c4-2a65f2d62406" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_ce223a2a-a4f5-4388-83c4-2a65f2d62406" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d73e9d80-d10c-4c52-8364-783c6231eb7d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d73e9d80-d10c-4c52-8364-783c6231eb7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_32ab2f4b-38f2-42aa-a0cd-8b724434e90d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_32ab2f4b-38f2-42aa-a0cd-8b724434e90d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8226541c-6cad-4c3d-bbb3-922946c3417d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8226541c-6cad-4c3d-bbb3-922946c3417d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_125654f5-aedd-4bc9-aadb-44598d304517" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_125654f5-aedd-4bc9-aadb-44598d304517" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_9e7d7d0d-a29b-4721-917c-0cca5a0b9d7d" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_cf01bb5d-70a9-49fb-be83-bca91cc607f5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_cf01bb5d-70a9-49fb-be83-bca91cc607f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_000a48ac-0271-42b0-b669-436dcb51c1c7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_000a48ac-0271-42b0-b669-436dcb51c1c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_9c52cffc-06ef-41e4-a2b4-eb878420e691" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_9c52cffc-06ef-41e4-a2b4-eb878420e691" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f6b06c08-141c-4dcb-8888-b396e6ea5894" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f6b06c08-141c-4dcb-8888-b396e6ea5894" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_6b3ce529-d478-4b74-b8d6-88c3ca4ae87c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_6b3ce529-d478-4b74-b8d6-88c3ca4ae87c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_0c73dcd7-11e5-4f48-8d1d-7e4eda8b0cd2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_0c73dcd7-11e5-4f48-8d1d-7e4eda8b0cd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_2c5bbb9a-e304-405a-9703-a4759cf56957" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_2c5bbb9a-e304-405a-9703-a4759cf56957" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_480d1a8e-fa34-4cb4-93e1-3c8f6889488e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_3eba981c-1864-48e2-87fb-5adc55b31ba6" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_480d1a8e-fa34-4cb4-93e1-3c8f6889488e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IntangibleAssetsDetails_1" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IntangibleAssetsDetails_1"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/IntangibleAssetsDetails_1" xlink:type="extended"/>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligations" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligations"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/WarrantyObligations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantiesDisclosuresAbstract_fb8b3c9c-d217-4124-a0c7-7c8dcf4621fb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantiesDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyDisclosureTextBlock_f8520361-5db9-47af-b891-33d76115ebee" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantyDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductWarrantiesDisclosuresAbstract_fb8b3c9c-d217-4124-a0c7-7c8dcf4621fb" xlink:to="loc_us-gaap_ProductWarrantyDisclosureTextBlock_f8520361-5db9-47af-b891-33d76115ebee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligationsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligationsTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/WarrantyObligationsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantiesDisclosuresAbstract_9524ab91-9cae-4493-9a48-30cd12c3fe7b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantiesDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_76ecfa7d-a227-4322-8e02-61e2123acdb6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductWarrantiesDisclosuresAbstract_9524ab91-9cae-4493-9a48-30cd12c3fe7b" xlink:to="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_76ecfa7d-a227-4322-8e02-61e2123acdb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WarrantyObligationsChangesinWarrantyObligationsDetail"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantiesDisclosuresAbstract_cf87045b-7fd3-4eb4-96c8-92452c978430" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantiesDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4d5192fd-1c71-4009-96be-cd96708def79" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductWarrantiesDisclosuresAbstract_cf87045b-7fd3-4eb4-96c8-92452c978430" xlink:to="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4d5192fd-1c71-4009-96be-cd96708def79" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_a7db5fc8-e40c-4f5a-b33b-cd9972889052" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4d5192fd-1c71-4009-96be-cd96708def79" xlink:to="loc_us-gaap_ProductWarrantyAccrual_a7db5fc8-e40c-4f5a-b33b-cd9972889052" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_226a54c6-5826-40db-9dbb-901c4e8def01" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4d5192fd-1c71-4009-96be-cd96708def79" xlink:to="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_226a54c6-5826-40db-9dbb-901c4e8def01" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments_d5b9226b-498f-4923-8686-7e2b2a836395" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantyAccrualPayments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4d5192fd-1c71-4009-96be-cd96708def79" xlink:to="loc_us-gaap_ProductWarrantyAccrualPayments_d5b9226b-498f-4923-8686-7e2b2a836395" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_fc355051-fd30-4c5f-b763-a818ee937915" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_4d5192fd-1c71-4009-96be-cd96708def79" xlink:to="loc_us-gaap_ProductWarrantyAccrual_fc355051-fd30-4c5f-b763-a818ee937915" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstruments" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstruments"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DerivativeInstruments" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6dc8a313-a7d4-4a23-8141-cc71f334f6b6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_73331a20-bb8f-4b1a-9584-72c65b2a1a92" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6dc8a313-a7d4-4a23-8141-cc71f334f6b6" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_73331a20-bb8f-4b1a-9584-72c65b2a1a92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_d1ae0847-68e4-4353-9c4b-32b1bbeec73b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OutstandingForwardContractsTableTextBlock_32062a13-4aa0-4712-a477-be3a57b2d525" xlink:href="cgnx-20200628.xsd#cgnx_OutstandingForwardContractsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_d1ae0847-68e4-4353-9c4b-32b1bbeec73b" xlink:to="loc_cgnx_OutstandingForwardContractsTableTextBlock_32062a13-4aa0-4712-a477-be3a57b2d525" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_5b5d8a7f-85b4-4484-ae83-b3431b5e0779" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_d1ae0847-68e4-4353-9c4b-32b1bbeec73b" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_5b5d8a7f-85b4-4484-ae83-b3431b5e0779" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock_e0c6f0c5-391f-41e2-9795-33603e020a2d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OffsettingAssetsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_d1ae0847-68e4-4353-9c4b-32b1bbeec73b" xlink:to="loc_us-gaap_OffsettingAssetsTableTextBlock_e0c6f0c5-391f-41e2-9795-33603e020a2d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_5892c511-b388-4665-96bb-16b2d4f8cea6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_d1ae0847-68e4-4353-9c4b-32b1bbeec73b" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_5892c511-b388-4665-96bb-16b2d4f8cea6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_37e79970-87a1-422b-979d-18df7c553c86" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_fea2082e-4fff-4d44-9729-4bd568c1e415" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_37e79970-87a1-422b-979d-18df7c553c86" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_fea2082e-4fff-4d44-9729-4bd568c1e415" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_fea2082e-4fff-4d44-9729-4bd568c1e415" xlink:to="loc_us-gaap_HedgingDesignationAxis_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_a717d53d-2493-4285-a423-5686daefdd2d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_b48d3c0c-b68a-4f8b-ac47-c7abd26ca43f" xlink:to="loc_us-gaap_HedgingDesignationDomain_a717d53d-2493-4285-a423-5686daefdd2d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_cfcf3d85-3036-40c0-bf9c-50234dec0aef" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_a717d53d-2493-4285-a423-5686daefdd2d" xlink:to="loc_us-gaap_NondesignatedMember_cfcf3d85-3036-40c0-bf9c-50234dec0aef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_15a46f07-ba14-47af-97b0-ef0f8925beb7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_fea2082e-4fff-4d44-9729-4bd568c1e415" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_15a46f07-ba14-47af-97b0-ef0f8925beb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_b80e2232-c85b-4453-b396-096ea5c9e2a9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_15a46f07-ba14-47af-97b0-ef0f8925beb7" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_b80e2232-c85b-4453-b396-096ea5c9e2a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsOutstandingForwardContractsTableDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_3fb778e9-6df3-4dc2-89c9-742bedc858ee" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_3fb778e9-6df3-4dc2-89c9-742bedc858ee" xlink:to="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_0f2f221b-51fc-4515-bd56-99507fdee55b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:to="loc_us-gaap_HedgingDesignationAxis_0f2f221b-51fc-4515-bd56-99507fdee55b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_c344701a-cee4-4ca1-b7ef-a612ede88d8d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_0f2f221b-51fc-4515-bd56-99507fdee55b" xlink:to="loc_us-gaap_HedgingDesignationDomain_c344701a-cee4-4ca1-b7ef-a612ede88d8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_c24230c4-91ed-4181-8d9c-95fe57f3a4cd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_c344701a-cee4-4ca1-b7ef-a612ede88d8d" xlink:to="loc_us-gaap_NondesignatedMember_c24230c4-91ed-4181-8d9c-95fe57f3a4cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_57cbd09d-e785-4fc3-a214-a02265980ddf" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CurrencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:to="loc_srt_CurrencyAxis_57cbd09d-e785-4fc3-a214-a02265980ddf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_AllCurrenciesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CurrencyAxis_57cbd09d-e785-4fc3-a214-a02265980ddf" xlink:to="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_41fee20f-32fd-4811-9306-4229e70a1d02" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_EUR"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_EUR_41fee20f-32fd-4811-9306-4229e70a1d02" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_a0642b38-652c-4ff7-9bdb-5332940ecd3d" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_JPY"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_JPY_a0642b38-652c-4ff7-9bdb-5332940ecd3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_47b81d8c-1c3e-4a10-a302-8cadc3cc1b5f" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_MXN"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_MXN_47b81d8c-1c3e-4a10-a302-8cadc3cc1b5f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_ed171f15-1173-44cc-a660-258a642b33e5" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_GBP"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_GBP_ed171f15-1173-44cc-a660-258a642b33e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_f4ed5c49-21ff-4c54-9b31-51c90b246423" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_HUF"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_HUF_f4ed5c49-21ff-4c54-9b31-51c90b246423" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_KRW_7aed3e76-9383-4727-b006-2825f5dc06ac" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_KRW"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_KRW_7aed3e76-9383-4727-b006-2825f5dc06ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_TWD_240ea38f-f6a9-430a-9cf4-14ac2bfe5381" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_TWD"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_TWD_240ea38f-f6a9-430a-9cf4-14ac2bfe5381" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_79237561-a630-4e8a-9da8-84c5aa556610" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_CAD"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_CAD_79237561-a630-4e8a-9da8-84c5aa556610" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD_0970f285-3dd4-4f41-b30e-7448cd2299f4" xlink:href="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd#currency_SGD"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e4d69361-a21e-418c-8f35-2c6aa24b97e0" xlink:to="loc_currency_SGD_0970f285-3dd4-4f41-b30e-7448cd2299f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_0afcf211-334f-464c-8711-d4ef5ff2f9fa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_ed70d81f-d0dd-4558-a133-a743e256da09" xlink:to="loc_us-gaap_DerivativeLineItems_0afcf211-334f-464c-8711-d4ef5ff2f9fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_dbe7343a-7bb8-45c1-8e9b-fbaad43e6c9a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_0afcf211-334f-464c-8711-d4ef5ff2f9fa" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_dbe7343a-7bb8-45c1-8e9b-fbaad43e6c9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_99abb408-1516-44be-8d89-9e724fd22419" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_99abb408-1516-44be-8d89-9e724fd22419" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_b58d9eed-002a-4796-b3e9-e9654a4272dc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:to="loc_us-gaap_HedgingDesignationAxis_b58d9eed-002a-4796-b3e9-e9654a4272dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_d0351444-22b4-468f-ae24-c6e706d7a84f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_b58d9eed-002a-4796-b3e9-e9654a4272dc" xlink:to="loc_us-gaap_HedgingDesignationDomain_d0351444-22b4-468f-ae24-c6e706d7a84f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_60c3b5f1-a0f8-47c4-a065-02bb04a27c7b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_d0351444-22b4-468f-ae24-c6e706d7a84f" xlink:to="loc_us-gaap_NondesignatedMember_60c3b5f1-a0f8-47c4-a065-02bb04a27c7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_7e792482-8772-4751-a9bd-0f65c8ac8a73" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_7e792482-8772-4751-a9bd-0f65c8ac8a73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_7e792482-8772-4751-a9bd-0f65c8ac8a73" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_16d5f816-eba0-4ee7-9326-360e8be4edda" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:to="loc_us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember_16d5f816-eba0-4ee7-9326-360e8be4edda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccruedExpensesMember_482ce1aa-62ce-40eb-97c9-e921c32c6666" xlink:href="cgnx-20200628.xsd#cgnx_AccruedExpensesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_4738e1e4-ae79-46ad-a2aa-063b3a20fce6" xlink:to="loc_cgnx_AccruedExpensesMember_482ce1aa-62ce-40eb-97c9-e921c32c6666" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4cb6a47c-8a8f-4743-bf6f-72797232c7a4" xlink:to="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_00290f2e-eba7-46b7-be5e-9f0f8a010209" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:to="loc_us-gaap_DerivativeAssets_00290f2e-eba7-46b7-be5e-9f0f8a010209" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_1af24e34-a6f9-4927-b82a-82e262450a34" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_5097e288-606c-4f5c-8116-3c339462b785" xlink:to="loc_us-gaap_DerivativeLiabilities_1af24e34-a6f9-4927-b82a-82e262450a34" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsOffsettingAssetsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f9838ea-c631-412b-8703-60ade6f078cd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_e1895d90-0e42-4fd0-b9a5-9449f9c11a09" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f9838ea-c631-412b-8703-60ade6f078cd" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_e1895d90-0e42-4fd0-b9a5-9449f9c11a09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_95c8ac95-ad9d-4124-bf77-005e1ade85c0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f9838ea-c631-412b-8703-60ade6f078cd" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_95c8ac95-ad9d-4124-bf77-005e1ade85c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_db2dd068-6dd7-40a0-a37e-5b955b41adf0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f9838ea-c631-412b-8703-60ade6f078cd" xlink:to="loc_us-gaap_DerivativeAssets_db2dd068-6dd7-40a0-a37e-5b955b41adf0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_67c63fb6-2087-40b4-9b35-b5db31e2eb66" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f9838ea-c631-412b-8703-60ade6f078cd" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_67c63fb6-2087-40b4-9b35-b5db31e2eb66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_1411c15a-1cc7-402e-b68a-bdb0eec0e723" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f9838ea-c631-412b-8703-60ade6f078cd" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_1411c15a-1cc7-402e-b68a-bdb0eec0e723" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_b0ba4976-bba4-48e9-8bb3-11ef4b888c93" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f9838ea-c631-412b-8703-60ade6f078cd" xlink:to="loc_us-gaap_DerivativeLiabilities_b0ba4976-bba4-48e9-8bb3-11ef4b888c93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#DerivativeInstrumentsDerivativeInstrumentsGainLossDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0808f2bf-e835-485e-adaa-82a850306f48" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_0808f2bf-e835-485e-adaa-82a850306f48" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_be5c6ac1-5167-4c09-9901-53cf34855c49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:to="loc_us-gaap_HedgingDesignationAxis_be5c6ac1-5167-4c09-9901-53cf34855c49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_f7125f5a-ce9a-48ae-b49f-9851c9d4aa8c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_be5c6ac1-5167-4c09-9901-53cf34855c49" xlink:to="loc_us-gaap_HedgingDesignationDomain_f7125f5a-ce9a-48ae-b49f-9851c9d4aa8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_d3e60238-953f-4e4a-ad3b-64ae99232dc4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_f7125f5a-ce9a-48ae-b49f-9851c9d4aa8c" xlink:to="loc_us-gaap_NondesignatedMember_d3e60238-953f-4e4a-ad3b-64ae99232dc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_281abdba-28dc-4497-b3c3-c9b782a56ee8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_281abdba-28dc-4497-b3c3-c9b782a56ee8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_281abdba-28dc-4497-b3c3-c9b782a56ee8" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_a2139ea5-3eaa-4b46-94df-3c41625ba8ca" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_a2139ea5-3eaa-4b46-94df-3c41625ba8ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyGainLossMember_3addb9c5-b270-4dfe-9802-59d9b9cea2bc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyGainLossMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_fa0c6ff3-d743-419c-bb70-44b01cbf83ab" xlink:to="loc_us-gaap_ForeignCurrencyGainLossMember_3addb9c5-b270-4dfe-9802-59d9b9cea2bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_ac11cf90-ef94-4e9c-af4c-0f329307329b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_4f7cf638-2015-4c2f-bc0c-cb3a4d90d541" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_ac11cf90-ef94-4e9c-af4c-0f329307329b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_dc5701e4-85a2-4800-98dc-394dea02305c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_ac11cf90-ef94-4e9c-af4c-0f329307329b" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_dc5701e4-85a2-4800-98dc-394dea02305c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognition" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognition"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RevenueRecognition" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f051331c-1725-4e0a-a71c-f03c094cd63c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_9341ced0-3f84-4987-99df-2a2cdf649e3e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f051331c-1725-4e0a-a71c-f03c094cd63c" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_9341ced0-3f84-4987-99df-2a2cdf649e3e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_6cbdcbe0-ea5c-4fde-bde0-3b0c00bfb7b7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock_16961bf2-4125-4c6b-81b8-bd20a2ecf81b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_6cbdcbe0-ea5c-4fde-bde0-3b0c00bfb7b7" xlink:to="loc_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock_16961bf2-4125-4c6b-81b8-bd20a2ecf81b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_450b4575-986c-4ab6-99a8-d71c4e8a5788" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_6cbdcbe0-ea5c-4fde-bde0-3b0c00bfb7b7" xlink:to="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock_450b4575-986c-4ab6-99a8-d71c4e8a5788" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_d1c27af3-b070-4b19-be1d-11c695817e1d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_6cbdcbe0-ea5c-4fde-bde0-3b0c00bfb7b7" xlink:to="loc_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_d1c27af3-b070-4b19-be1d-11c695817e1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_78a09b86-8a59-4e1a-902e-ff75be5d5b18" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueByArrangementDisclosureTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_6cbdcbe0-ea5c-4fde-bde0-3b0c00bfb7b7" xlink:to="loc_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock_78a09b86-8a59-4e1a-902e-ff75be5d5b18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_38fc69e4-5bb6-45de-865b-46b9d940cc51" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_4de9af82-6643-4da1-98ec-b21a853c7055" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_38fc69e4-5bb6-45de-865b-46b9d940cc51" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_4de9af82-6643-4da1-98ec-b21a853c7055" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_ecee59ce-f612-457f-8fc9-40da2b844f18" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4de9af82-6643-4da1-98ec-b21a853c7055" xlink:to="loc_srt_StatementGeographicalAxis_ecee59ce-f612-457f-8fc9-40da2b844f18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_ecee59ce-f612-457f-8fc9-40da2b844f18" xlink:to="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_de5d9ea6-d38a-4392-8d57-c19a19abdef6" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_srt_AmericasMember_de5d9ea6-d38a-4392-8d57-c19a19abdef6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_717de3ca-3bc1-43ff-a969-790db321773e" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_EuropeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_srt_EuropeMember_717de3ca-3bc1-43ff-a969-790db321773e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN_ac82fca8-c12e-463c-8f00-dd5ea4ecf821" xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CN"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_country_CN_ac82fca8-c12e-463c-8f00-dd5ea4ecf821" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AsiaExcludingChinaMember_9fcbac04-9a8d-4f6f-8401-9e0b8db88a94" xlink:href="cgnx-20200628.xsd#cgnx_AsiaExcludingChinaMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_94476c0c-61aa-4cf4-b522-764e4504eb99" xlink:to="loc_cgnx_AsiaExcludingChinaMember_9fcbac04-9a8d-4f6f-8401-9e0b8db88a94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_671679d1-c8f1-4588-8fbe-25377c55ccca" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_4de9af82-6643-4da1-98ec-b21a853c7055" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_671679d1-c8f1-4588-8fbe-25377c55ccca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_48f0b906-3618-4653-8a35-6e16af0476cb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_671679d1-c8f1-4588-8fbe-25377c55ccca" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_48f0b906-3618-4653-8a35-6e16af0476cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_ef98298a-d0e5-47fc-9e7b-286b38bba1e8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_28d555d9-bf67-4c9f-bc20-7262e3e0a6c5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_ef98298a-d0e5-47fc-9e7b-286b38bba1e8" xlink:to="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_28d555d9-bf67-4c9f-bc20-7262e3e0a6c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_753ff850-5e02-4092-9059-f43b2c4bfbdf" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_28d555d9-bf67-4c9f-bc20-7262e3e0a6c5" xlink:to="loc_srt_ProductOrServiceAxis_753ff850-5e02-4092-9059-f43b2c4bfbdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_753ff850-5e02-4092-9059-f43b2c4bfbdf" xlink:to="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductsandServicesMember_08674d27-989a-466b-a47b-10dcae51f802" xlink:href="cgnx-20200628.xsd#cgnx_StandardProductsandServicesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:to="loc_cgnx_StandardProductsandServicesMember_08674d27-989a-466b-a47b-10dcae51f802" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationSpecificCustomerSolutionsMember_95eb1802-c3d1-4631-9596-509d7b6668ed" xlink:href="cgnx-20200628.xsd#cgnx_ApplicationSpecificCustomerSolutionsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_51ada877-a5ec-425d-bcad-f9ea7fc50b49" xlink:to="loc_cgnx_ApplicationSpecificCustomerSolutionsMember_95eb1802-c3d1-4631-9596-509d7b6668ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_156ecef8-65b5-463a-a86c-9dc24c59170c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable_28d555d9-bf67-4c9f-bc20-7262e3e0a6c5" xlink:to="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_156ecef8-65b5-463a-a86c-9dc24c59170c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_9c0265f8-b3a1-4d0b-8fa8-ac501e037cdf" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems_156ecef8-65b5-463a-a86c-9dc24c59170c" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_9c0265f8-b3a1-4d0b-8fa8-ac501e037cdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_c8e29087-23ec-448c-89a3-b326fe96bcee" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostGross_2bcedf81-2d98-44c8-8f10-96d59884b25e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalizedContractCostGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_c8e29087-23ec-448c-89a3-b326fe96bcee" xlink:to="loc_us-gaap_CapitalizedContractCostGross_2bcedf81-2d98-44c8-8f10-96d59884b25e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_664de53a-4630-4468-a21f-bd9712ca88e9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_c8e29087-23ec-448c-89a3-b326fe96bcee" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_664de53a-4630-4468-a21f-bd9712ca88e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionScheduleofAllowanceforCreditLossDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_d12e4b1a-46b5-4d00-80e0-41f920401c63" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_941dbea8-3364-470d-94b5-007e37766579" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_d12e4b1a-46b5-4d00-80e0-41f920401c63" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_941dbea8-3364-470d-94b5-007e37766579" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_80a78c5d-82d0-4796-beba-0d519d973f4d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_941dbea8-3364-470d-94b5-007e37766579" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_80a78c5d-82d0-4796-beba-0d519d973f4d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_8abb2965-2a2b-468d-9ef9-5370b3877ee5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_941dbea8-3364-470d-94b5-007e37766579" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_8abb2965-2a2b-468d-9ef9-5370b3877ee5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_85915b7a-fb61-4f15-bad0-ca9b565c6cc2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_941dbea8-3364-470d-94b5-007e37766579" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_85915b7a-fb61-4f15-bad0-ca9b565c6cc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_55b97dc9-68bd-40ca-8ea1-e1fbcaf97dc4" xlink:href="cgnx-20200628.xsd#cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_941dbea8-3364-470d-94b5-007e37766579" xlink:to="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_55b97dc9-68bd-40ca-8ea1-e1fbcaf97dc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_46291ab1-18a4-4e2c-b5b1-760959a0b232" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_941dbea8-3364-470d-94b5-007e37766579" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_46291ab1-18a4-4e2c-b5b1-760959a0b232" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RevenueRecognitionDeferredRevenueActivityDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_19dbd99f-494b-41d2-af33-8d094690ea8e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInDeferredRevenueRollForward_5fc1f715-e51a-4e0f-885d-d0498a5022fa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MovementInDeferredRevenueRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_19dbd99f-494b-41d2-af33-8d094690ea8e" xlink:to="loc_us-gaap_MovementInDeferredRevenueRollForward_5fc1f715-e51a-4e0f-885d-d0498a5022fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenue_3098182f-b331-4a72-885d-08a119b6164b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInDeferredRevenueRollForward_5fc1f715-e51a-4e0f-885d-d0498a5022fa" xlink:to="loc_us-gaap_DeferredRevenue_3098182f-b331-4a72-885d-08a119b6164b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueAdditions_cab177fb-1813-41b1-9e36-49118dcfc3b7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueAdditions"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInDeferredRevenueRollForward_5fc1f715-e51a-4e0f-885d-d0498a5022fa" xlink:to="loc_us-gaap_DeferredRevenueAdditions_cab177fb-1813-41b1-9e36-49118dcfc3b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRevenueRecognized1_dba39e09-410e-4486-9f1d-64fd7c53b954" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueRevenueRecognized1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInDeferredRevenueRollForward_5fc1f715-e51a-4e0f-885d-d0498a5022fa" xlink:to="loc_us-gaap_DeferredRevenueRevenueRecognized1_dba39e09-410e-4486-9f1d-64fd7c53b954" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment_40fd38e4-7d12-43ef-b41f-e2619045bf6f" xlink:href="cgnx-20200628.xsd#cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInDeferredRevenueRollForward_5fc1f715-e51a-4e0f-885d-d0498a5022fa" xlink:to="loc_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment_40fd38e4-7d12-43ef-b41f-e2619045bf6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenue_c21c8b97-1878-4521-8f5e-48dafed73e05" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInDeferredRevenueRollForward_5fc1f715-e51a-4e0f-885d-d0498a5022fa" xlink:to="loc_us-gaap_DeferredRevenue_c21c8b97-1878-4521-8f5e-48dafed73e05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpense" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpense"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpense" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_f955c5a2-080e-4f0a-a63f-7a45de9c3422" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationRelatedCostsGeneralTextBlock_9ffe5af4-ea0f-459d-b617-d65452e1f9ad" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CompensationRelatedCostsGeneralTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_f955c5a2-080e-4f0a-a63f-7a45de9c3422" xlink:to="loc_us-gaap_CompensationRelatedCostsGeneralTextBlock_9ffe5af4-ea0f-459d-b617-d65452e1f9ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_6aa5670e-632b-48ec-856e-59ff6eb5182e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_fbf0da73-aeef-4719-8e75-946ebf820b5e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_6aa5670e-632b-48ec-856e-59ff6eb5182e" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_fbf0da73-aeef-4719-8e75-946ebf820b5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_c8fe6a70-49ba-48d7-92b3-d73264991485" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_6aa5670e-632b-48ec-856e-59ff6eb5182e" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_c8fe6a70-49ba-48d7-92b3-d73264991485" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_bac03800-db1e-4c68-b3be-c65be48b1bae" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_6aa5670e-632b-48ec-856e-59ff6eb5182e" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_bac03800-db1e-4c68-b3be-c65be48b1bae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock_f482dfa5-05ea-4b38-a452-95bc52b0b379" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_6aa5670e-632b-48ec-856e-59ff6eb5182e" xlink:to="loc_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock_f482dfa5-05ea-4b38-a452-95bc52b0b379" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1dd179e4-993b-4f59-b9c7-69efa7e6766f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_1dd179e4-993b-4f59-b9c7-69efa7e6766f" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_abf9c981-75b1-4cd0-8674-4c43ae3bb711" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:to="loc_srt_RangeAxis_abf9c981-75b1-4cd0-8674-4c43ae3bb711" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_abf9c981-75b1-4cd0-8674-4c43ae3bb711" xlink:to="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_bb316e38-f866-401f-80d7-1d39d176b10b" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:to="loc_srt_MinimumMember_bb316e38-f866-401f-80d7-1d39d176b10b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_4eab6562-2225-4df0-bd35-0eb3c19c0a95" xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_97061dd7-0848-4321-abab-94d497325a92" xlink:to="loc_srt_MaximumMember_4eab6562-2225-4df0-bd35-0eb3c19c0a95" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_c491c059-bdd2-4be1-99e8-2cc5459f6494" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:to="loc_us-gaap_AwardTypeAxis_c491c059-bdd2-4be1-99e8-2cc5459f6494" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_c491c059-bdd2-4be1-99e8-2cc5459f6494" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_2a0cc970-c7e6-4d17-ae0d-aab0b994966b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:to="loc_us-gaap_EmployeeStockOptionMember_2a0cc970-c7e6-4d17-ae0d-aab0b994966b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_15cd3e75-9e49-4429-83c3-59c6b99cfcc5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:to="loc_us-gaap_PerformanceSharesMember_15cd3e75-9e49-4429-83c3-59c6b99cfcc5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_14067ab2-5585-4838-8524-b8b09187c122" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9b9453f1-1687-4647-9c12-378b5eb9964c" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_14067ab2-5585-4838-8524-b8b09187c122" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:to="loc_us-gaap_PlanNameAxis_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_a46207fd-eb25-47db-92af-b23a74b071fa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameAxis_2526826b-1f5c-4fbb-9b5b-f25e5ca60a1c" xlink:to="loc_us-gaap_PlanNameDomain_a46207fd-eb25-47db-92af-b23a74b071fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GeneralStockOptionPlanMember_f4a22b6e-e990-4c84-aeef-e8d0eaf9bcff" xlink:href="cgnx-20200628.xsd#cgnx_GeneralStockOptionPlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_a46207fd-eb25-47db-92af-b23a74b071fa" xlink:to="loc_cgnx_GeneralStockOptionPlanMember_f4a22b6e-e990-4c84-aeef-e8d0eaf9bcff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_c7aba2d8-aa40-4b7f-a641-60a6ebf015db" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_80932163-84a1-4d39-871b-1f70a9a04353" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_80932163-84a1-4d39-871b-1f70a9a04353" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_fe65d87b-6de3-4b88-affa-753bfe23c478" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_fe65d87b-6de3-4b88-affa-753bfe23c478" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_2a1540c2-6fce-43aa-8f3a-f8a55549d2c0" xlink:href="cgnx-20200628.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_2a1540c2-6fce-43aa-8f3a-f8a55549d2c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a1d5d06a-486d-479f-98af-ee0edc6800d3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a1d5d06a-486d-479f-98af-ee0edc6800d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_d21915d7-91c5-465d-8f62-cf6ca53fd267" xlink:href="cgnx-20200628.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue_d21915d7-91c5-465d-8f62-cf6ca53fd267" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_e80541e0-8c76-4f79-8390-10cd0b12fe9b" xlink:href="cgnx-20200628.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_e80541e0-8c76-4f79-8390-10cd0b12fe9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0a443484-3fb4-485c-bc8e-a02413f3f9d8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0a443484-3fb4-485c-bc8e-a02413f3f9d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4c1100f3-99f2-4399-a7d5-fa3746425dab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4c1100f3-99f2-4399-a7d5-fa3746425dab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7bc0395e-396b-4125-9755-23d678a166e6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_7bc0395e-396b-4125-9755-23d678a166e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9018c51f-b2fc-418e-a995-1f059eea6fff" xlink:href="cgnx-20200628.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9018c51f-b2fc-418e-a995-1f059eea6fff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_e2f7349c-8427-40fa-8687-bcb93056bae4" xlink:href="cgnx-20200628.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_e2f7349c-8427-40fa-8687-bcb93056bae4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_c4b15eb3-25cd-4fa9-9237-1b52f3881942" xlink:href="cgnx-20200628.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_c4b15eb3-25cd-4fa9-9237-1b52f3881942" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d41a9f43-5be7-4401-9c02-561f9b3a48cc" xlink:href="cgnx-20200628.xsd#cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d41a9f43-5be7-4401-9c02-561f9b3a48cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_40ab8ac6-9960-452e-bb8c-c9c5019f5d35" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_40ab8ac6-9960-452e-bb8c-c9c5019f5d35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition_921ef74c-b97b-453f-bbcf-93e9e8fcf665" xlink:href="cgnx-20200628.xsd#cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition_921ef74c-b97b-453f-bbcf-93e9e8fcf665" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_7ca2728e-a72a-4781-8990-5795f1b0f982" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_7ca2728e-a72a-4781-8990-5795f1b0f982" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments_8e74db46-90b4-4c8a-8d3e-04dd8ed33bda" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments_8e74db46-90b4-4c8a-8d3e-04dd8ed33bda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_07899bb3-e7e9-43c1-9f29-ba6ea66f5220" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_07899bb3-e7e9-43c1-9f29-ba6ea66f5220" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_702af9a4-6cc0-40ea-a008-ac9d34a04ce2" xlink:href="cgnx-20200628.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c7497bbf-8785-413f-aa4e-34f615589829" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_702af9a4-6cc0-40ea-a008-ac9d34a04ce2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cfa4578f-71b9-46f6-aff4-9cfa616ca9cd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cfa4578f-71b9-46f6-aff4-9cfa616ca9cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_47219f04-f6d2-40cf-9053-7c9bf4682f1a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cfa4578f-71b9-46f6-aff4-9cfa616ca9cd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_47219f04-f6d2-40cf-9053-7c9bf4682f1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_82d4eb91-7282-4edc-acf3-b87329713875" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cfa4578f-71b9-46f6-aff4-9cfa616ca9cd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_82d4eb91-7282-4edc-acf3-b87329713875" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_79707cdf-c6ae-4add-a4d9-6f2c2b9e12c4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cfa4578f-71b9-46f6-aff4-9cfa616ca9cd" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_79707cdf-c6ae-4add-a4d9-6f2c2b9e12c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_344bfaff-2f03-435b-8804-9ea792c22120" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cfa4578f-71b9-46f6-aff4-9cfa616ca9cd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_344bfaff-2f03-435b-8804-9ea792c22120" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_12d145bb-0c86-4ca3-b2da-a3ac64908e3b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_cfa4578f-71b9-46f6-aff4-9cfa616ca9cd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_12d145bb-0c86-4ca3-b2da-a3ac64908e3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_04026e1a-4548-4984-a488-9bdf3515faa4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_04026e1a-4548-4984-a488-9bdf3515faa4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_d13bf46c-c51f-403e-b25f-1789544238a2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_d13bf46c-c51f-403e-b25f-1789544238a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_56cc4a06-847f-4323-92df-ef0ccf51d003" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_56cc4a06-847f-4323-92df-ef0ccf51d003" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_0f847a3a-02a4-4fec-81b0-c8188779b295" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_56cc4a06-847f-4323-92df-ef0ccf51d003" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_0f847a3a-02a4-4fec-81b0-c8188779b295" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_dc1ee6e1-74cd-481d-9746-b521bf5995ff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_56cc4a06-847f-4323-92df-ef0ccf51d003" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_dc1ee6e1-74cd-481d-9746-b521bf5995ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_3b2ef136-8b2a-4f14-97dc-57dd58e30fd0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_56cc4a06-847f-4323-92df-ef0ccf51d003" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_3b2ef136-8b2a-4f14-97dc-57dd58e30fd0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_5978bf16-d551-4f25-ae7b-7c9499f31c15" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_56cc4a06-847f-4323-92df-ef0ccf51d003" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_5978bf16-d551-4f25-ae7b-7c9499f31c15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_41b878f8-c090-4894-9265-b47dcab55910" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_56cc4a06-847f-4323-92df-ef0ccf51d003" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_41b878f8-c090-4894-9265-b47dcab55910" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_59f7cc55-7084-42b1-add3-464508f139a3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_59f7cc55-7084-42b1-add3-464508f139a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_60ba6b3b-eea5-4b96-b04d-4d2b3aba3635" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_60ba6b3b-eea5-4b96-b04d-4d2b3aba3635" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_40db4784-6a01-4123-8d76-d327ac9e395f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_40db4784-6a01-4123-8d76-d327ac9e395f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_108e6195-ea25-4b79-88ec-2112dcfa766d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_40db4784-6a01-4123-8d76-d327ac9e395f" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_108e6195-ea25-4b79-88ec-2112dcfa766d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_edfe8383-50ef-4941-a02e-4209f7e30691" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_40db4784-6a01-4123-8d76-d327ac9e395f" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_edfe8383-50ef-4941-a02e-4209f7e30691" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_1a935be7-ce10-4649-993a-6b93019a7759" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_40db4784-6a01-4123-8d76-d327ac9e395f" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_1a935be7-ce10-4649-993a-6b93019a7759" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_f96c380a-36b5-4140-b5ec-e41ba67095ce" xlink:href="cgnx-20200628.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9971089d-e8f5-49e9-8c76-341982037a1c" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_f96c380a-36b5-4140-b5ec-e41ba67095ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_121dbad1-a0e0-4755-ac07-fcf807786879" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_f96c380a-36b5-4140-b5ec-e41ba67095ce" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_121dbad1-a0e0-4755-ac07-fcf807786879" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_dfa33041-9235-456f-b8e1-fc7db11fa0c0" xlink:href="cgnx-20200628.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_f96c380a-36b5-4140-b5ec-e41ba67095ce" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_dfa33041-9235-456f-b8e1-fc7db11fa0c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_89a45e44-7801-4e2c-bc89-ecdc7825e846" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract_f96c380a-36b5-4140-b5ec-e41ba67095ce" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_89a45e44-7801-4e2c-bc89-ecdc7825e846" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ec621e64-26c6-40b9-a2e7-d28fe199c146" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_1ae6dcf5-2e21-4007-b5d6-f0b3519c8620" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ec621e64-26c6-40b9-a2e7-d28fe199c146" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_1ae6dcf5-2e21-4007-b5d6-f0b3519c8620" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_7997a77e-cd94-4a83-b4d9-9dec127a8ebb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ec621e64-26c6-40b9-a2e7-d28fe199c146" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_7997a77e-cd94-4a83-b4d9-9dec127a8ebb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_aad364a6-0606-4db7-88d2-2862b83281a2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ec621e64-26c6-40b9-a2e7-d28fe199c146" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_aad364a6-0606-4db7-88d2-2862b83281a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_7ddfa3bc-d3a1-434e-8a7f-47341f4b492f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ec621e64-26c6-40b9-a2e7-d28fe199c146" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_7ddfa3bc-d3a1-434e-8a7f-47341f4b492f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_c19b397e-c54f-4ef0-9a26-19ce305ebd94" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_9aa27af4-61a0-4866-9876-77694f795d95" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_c19b397e-c54f-4ef0-9a26-19ce305ebd94" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_9aa27af4-61a0-4866-9876-77694f795d95" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_8cae77f9-4973-4926-aaee-41b2feb25ea4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_9aa27af4-61a0-4866-9876-77694f795d95" xlink:to="loc_us-gaap_AwardTypeAxis_8cae77f9-4973-4926-aaee-41b2feb25ea4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d0beeea6-1797-469b-b609-459eece7d642" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_8cae77f9-4973-4926-aaee-41b2feb25ea4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d0beeea6-1797-469b-b609-459eece7d642" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_1d7cb962-2850-4044-9a41-a68fa006104e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d0beeea6-1797-469b-b609-459eece7d642" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_1d7cb962-2850-4044-9a41-a68fa006104e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_9aa27af4-61a0-4866-9876-77694f795d95" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_64b2d936-7049-4e37-ad5f-be5a0f4e8148" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_64b2d936-7049-4e37-ad5f-be5a0f4e8148" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0009bba8-c740-4eac-9a33-3fe0d7aead5d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_0009bba8-c740-4eac-9a33-3fe0d7aead5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_097993b6-9155-444b-9b08-d42f70617293" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_097993b6-9155-444b-9b08-d42f70617293" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd18e92a-7a37-4b2f-a53e-1943cf087d49" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd18e92a-7a37-4b2f-a53e-1943cf087d49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_1e262ae6-dc80-4e28-94c3-8508a389cdbc" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_183dd154-d3b5-447e-9545-c8ac4b0059d6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_1e262ae6-dc80-4e28-94c3-8508a389cdbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_c580efd7-86cf-4516-9fd0-8ca6de306f73" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_37a2c498-3a71-43f6-ad2b-353d7f3a868a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_37a2c498-3a71-43f6-ad2b-353d7f3a868a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_100bc361-42a4-4e24-8cec-446143b3be93" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_100bc361-42a4-4e24-8cec-446143b3be93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_193bdee7-0295-4b04-bf98-e55408fc27be" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_193bdee7-0295-4b04-bf98-e55408fc27be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_84a7535d-c70d-4aed-897e-b28a71fa88d4" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_84a7535d-c70d-4aed-897e-b28a71fa88d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2817a165-0ae9-4700-a061-5fe0c4cc2772" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_b1eb655d-ea44-4d2c-aa28-45419bbf2fd7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2817a165-0ae9-4700-a061-5fe0c4cc2772" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_69eac53c-de5d-4849-bb89-74fc2a6aeb6b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_36f23d32-ab58-4354-a3cb-757c09ea765d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_69eac53c-de5d-4849-bb89-74fc2a6aeb6b" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_36f23d32-ab58-4354-a3cb-757c09ea765d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_36f23d32-ab58-4354-a3cb-757c09ea765d" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsTotalMember_7030c240-5060-46af-952c-444c49a21ce7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsTotalMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:to="loc_us-gaap_CostOfGoodsTotalMember_7030c240-5060-46af-952c-444c49a21ce7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_3a2af9e5-9230-43c1-8017-ac244db5c9c2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_3a2af9e5-9230-43c1-8017-ac244db5c9c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_173a5547-2296-404f-9d50-48f6ebc702b0" xlink:href="cgnx-20200628.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_c4618526-96d3-4f21-adf0-206fc6b2cc2b" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_173a5547-2296-404f-9d50-48f6ebc702b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8e701092-887d-4167-9c8a-0a35058364b1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_69eac53c-de5d-4849-bb89-74fc2a6aeb6b" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8e701092-887d-4167-9c8a-0a35058364b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_44e1ec6a-2e62-41a8-8c09-c79e5120141a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_8e701092-887d-4167-9c8a-0a35058364b1" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_44e1ec6a-2e62-41a8-8c09-c79e5120141a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockRepurchaseProgram" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockRepurchaseProgram"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockRepurchaseProgram" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_92170bc0-9238-491a-8f57-6cc2105319fb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_85b6f7a7-8c6e-4e0d-a804-79d299afbec2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_92170bc0-9238-491a-8f57-6cc2105319fb" xlink:to="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_85b6f7a7-8c6e-4e0d-a804-79d299afbec2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/StockRepurchaseProgramDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#StockRepurchaseProgramDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/StockRepurchaseProgramDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_6d4b5a17-0f8f-4413-9518-a6fc25a46691" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfTreasuryStockTable_9ae9ddb0-d630-4cf0-8fde-70f26345ca84" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ClassOfTreasuryStockTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_6d4b5a17-0f8f-4413-9518-a6fc25a46691" xlink:to="loc_us-gaap_ClassOfTreasuryStockTable_9ae9ddb0-d630-4cf0-8fde-70f26345ca84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_020e9e52-9d5b-4877-8ead-944dcc37a463" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfTreasuryStockTable_9ae9ddb0-d630-4cf0-8fde-70f26345ca84" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_020e9e52-9d5b-4877-8ead-944dcc37a463" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_020e9e52-9d5b-4877-8ead-944dcc37a463" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_2e1835ca-4ee7-42ae-82ca-884ef68a2257" xlink:href="cgnx-20200628.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_2e1835ca-4ee7-42ae-82ca-884ef68a2257" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_1749dba6-b597-40b1-9604-d3593899f643" xlink:href="cgnx-20200628.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_afe8acef-f023-4427-9a4c-d3bd47502983" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_1749dba6-b597-40b1-9604-d3593899f643" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityClassOfTreasuryStockLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfTreasuryStockTable_9ae9ddb0-d630-4cf0-8fde-70f26345ca84" xlink:to="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_707e31ee-97d9-4a96-a050-625292c5cafd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_707e31ee-97d9-4a96-a050-625292c5cafd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased_2e768800-ddbf-4536-9d2c-0ee867c4aaa4" xlink:href="cgnx-20200628.xsd#cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased_2e768800-ddbf-4536-9d2c-0ee867c4aaa4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramValue_c4868495-2b4a-4f97-a508-2ad241fc01dc" xlink:href="cgnx-20200628.xsd#cgnx_StockRepurchaseProgramValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_cgnx_StockRepurchaseProgramValue_c4868495-2b4a-4f97-a508-2ad241fc01dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_a729662e-1e33-4b36-be39-1c61feda6aaa" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_a729662e-1e33-4b36-be39-1c61feda6aaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_500dfc63-27b2-4f69-871a-4b7dfc3afec7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_500dfc63-27b2-4f69-871a-4b7dfc3afec7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_d7b5b61a-4518-43c7-b0ca-a5f1c5e74ade" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityClassOfTreasuryStockLineItems_75ae792c-b164-45c2-8e18-8d9df100bfab" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_d7b5b61a-4518-43c7-b0ca-a5f1c5e74ade" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/Taxes" xlink:type="simple" xlink:href="cgnx-20200628.xsd#Taxes"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/Taxes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_90aa2dcf-9e68-4a4c-864f-ed5cdd48a554" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_6e144b04-755d-4e08-92ba-2ae5a3c867f2" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_90aa2dcf-9e68-4a4c-864f-ed5cdd48a554" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_6e144b04-755d-4e08-92ba-2ae5a3c867f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/IncomeTaxesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_1866e568-3e3b-4dc2-bfdf-6c1c10267e52" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_428692b5-140a-470e-a5d6-dbc19757ce69" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1866e568-3e3b-4dc2-bfdf-6c1c10267e52" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_428692b5-140a-470e-a5d6-dbc19757ce69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_0dc3c9c7-8d08-44c8-aeb2-5f6ed611748b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_0dc3c9c7-8d08-44c8-aeb2-5f6ed611748b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_b1ccbf59-70a1-4f89-be52-6630e1efc3b0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_b1ccbf59-70a1-4f89-be52-6630e1efc3b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_3da1346d-8b45-41a8-b48e-9baa5a83df72" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_3da1346d-8b45-41a8-b48e-9baa5a83df72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_36d212f4-bbc0-452f-8aeb-b69f4609af36" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_36d212f4-bbc0-452f-8aeb-b69f4609af36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_36a242c7-dc55-4f79-8ef9-2eefc2be2794" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_36a242c7-dc55-4f79-8ef9-2eefc2be2794" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_9fe2f6f9-a6b2-4c72-8c64-10068cf6d818" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_9fe2f6f9-a6b2-4c72-8c64-10068cf6d818" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_397c671d-9b55-4b6a-a090-5f77f411abfc" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_397c671d-9b55-4b6a-a090-5f77f411abfc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_f7469704-03a6-46c3-8c44-ad2e380591e0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_f7469704-03a6-46c3-8c44-ad2e380591e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_8e78b1ef-22cc-4fe1-9335-188065a236cb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_cf82fce0-f56d-4934-b39c-e7ecadd20af9" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_8e78b1ef-22cc-4fe1-9335-188065a236cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/IncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#IncomeTaxesDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/IncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_d11ee849-f4d0-468f-b1c3-87066869b8ca" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxContingencyTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_d11ee849-f4d0-468f-b1c3-87066869b8ca" xlink:to="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_3ac6c00d-0bae-4c30-90e5-45387af05155" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:to="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_3ac6c00d-0bae-4c30-90e5-45387af05155" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfAdoptionMember_179b268b-9946-4641-9a54-d67a0fd159fd" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_3ac6c00d-0bae-4c30-90e5-45387af05155" xlink:to="loc_us-gaap_TypeOfAdoptionMember_179b268b-9946-4641-9a54-d67a0fd159fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_eaec522b-a623-4256-9b7d-fb9bd2d59fef" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_eaec522b-a623-4256-9b7d-fb9bd2d59fef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_eaec522b-a623-4256-9b7d-fb9bd2d59fef" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_7fc67b93-7a09-40f6-84e4-a6840f36d75a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:to="loc_us-gaap_ForeignCountryMember_7fc67b93-7a09-40f6-84e4-a6840f36d75a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_238ef43d-9205-4792-bf0a-40b8c63956ec" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_bf177f75-67b9-4f2e-8017-7ba06cab2ce3" xlink:to="loc_us-gaap_DomesticCountryMember_238ef43d-9205-4792-bf0a-40b8c63956ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_c1958a36-c527-437f-9dff-d8b0e807ae2a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_c1958a36-c527-437f-9dff-d8b0e807ae2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_c1958a36-c527-437f-9dff-d8b0e807ae2a" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_c82581a8-5bae-4935-929d-a2536f834bff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_c82581a8-5bae-4935-929d-a2536f834bff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_3f7b8310-9dee-4d31-9ac8-527497bdabe7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_2ddc4251-e092-449d-8475-c00db872aace" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_3f7b8310-9dee-4d31-9ac8-527497bdabe7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxContingencyLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyTable_de96607a-01b6-4b80-a3b8-3b862ddcd395" xlink:to="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b328ed60-4487-403b-b87e-8971bb0ecfc6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_b328ed60-4487-403b-b87e-8971bb0ecfc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_83062d41-af82-4417-be2e-59cb13b07b56" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_83062d41-af82-4417-be2e-59cb13b07b56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1322c538-4cee-404b-994b-6db7c2da0dc5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_1322c538-4cee-404b-994b-6db7c2da0dc5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_2550ff36-b7e0-4194-beb0-85c4966f669b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate_2550ff36-b7e0-4194-beb0-85c4966f669b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_268148b7-96b5-4246-90df-1a4380a30917" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent_268148b7-96b5-4246-90df-1a4380a30917" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear_cd42292b-d6dc-4bfc-828a-81c8c5a37d11" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear_cd42292b-d6dc-4bfc-828a-81c8c5a37d11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInterestAndPenalties_6fb37d9a-c076-46e5-afb4-f90d0fe1f543" xlink:href="cgnx-20200628.xsd#cgnx_IncreaseDecreaseInterestAndPenalties"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_IncreaseDecreaseInterestAndPenalties_6fb37d9a-c076-46e5-afb4-f90d0fe1f543" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LiabilityForUncertainTaxPositions_45654b27-c073-4006-a7fc-1b54d4b2258b" xlink:href="cgnx-20200628.xsd#cgnx_LiabilityForUncertainTaxPositions"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_LiabilityForUncertainTaxPositions_45654b27-c073-4006-a7fc-1b54d4b2258b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6fe6a38f-bf3d-44c2-a9fc-34cc9a800311" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_6fe6a38f-bf3d-44c2-a9fc-34cc9a800311" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_db5f7436-509f-4aca-82f3-afb713d7190a" xlink:href="cgnx-20200628.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_db5f7436-509f-4aca-82f3-afb713d7190a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_3a438338-8261-4ed7-ad2d-c2fe44ff1769" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_3a438338-8261-4ed7-ad2d-c2fe44ff1769" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_103d0e0f-8a57-4098-95f6-2cc9302b1131" xlink:href="cgnx-20200628.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_103d0e0f-8a57-4098-95f6-2cc9302b1131" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_34264327-0d2d-4a42-af11-3a103cb2b977" xlink:href="cgnx-20200628.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_34264327-0d2d-4a42-af11-3a103cb2b977" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TaxyearsopentoexaminationbyInternalRevenueService_f37f91d3-1e64-4a42-8128-046ce5846cfb" xlink:href="cgnx-20200628.xsd#cgnx_TaxyearsopentoexaminationbyInternalRevenueService"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_TaxyearsopentoexaminationbyInternalRevenueService_f37f91d3-1e64-4a42-8128-046ce5846cfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities_c1988e87-9c48-4c07-87da-25517250de96" xlink:href="cgnx-20200628.xsd#cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities_c1988e87-9c48-4c07-87da-25517250de96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent_601bba51-d83d-4d35-83e3-0c4260873250" xlink:href="cgnx-20200628.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxContingencyLineItems_768b20f3-c92b-4866-a776-b218c3682564" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent_601bba51-d83d-4d35-83e3-0c4260873250" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageShares" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageShares"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/WeightedAverageShares" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_c5749442-2d9a-40bd-8ae3-2e3cbf6198b3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_136f6c03-995e-4e9c-9a9d-8eb5ce18d43d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_c5749442-2d9a-40bd-8ae3-2e3cbf6198b3" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_136f6c03-995e-4e9c-9a9d-8eb5ce18d43d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_13db3c91-d49c-4982-ac81-bf3c54e18858" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_977409b1-d5c5-44ce-890a-abb509c38225" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_13db3c91-d49c-4982-ac81-bf3c54e18858" xlink:to="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_977409b1-d5c5-44ce-890a-abb509c38225" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_83e68908-c9f5-47b1-8578-d607326dc837" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e4e444b6-910a-4027-976b-45fc8e98ca32" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_83e68908-c9f5-47b1-8578-d607326dc837" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e4e444b6-910a-4027-976b-45fc8e98ca32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_372e9930-a844-4122-8bc7-ea326d966908" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e4e444b6-910a-4027-976b-45fc8e98ca32" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_372e9930-a844-4122-8bc7-ea326d966908" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_372e9930-a844-4122-8bc7-ea326d966908" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_e472ddf7-35cc-413e-a6e8-340f2257ce17" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:to="loc_us-gaap_EmployeeStockOptionMember_e472ddf7-35cc-413e-a6e8-340f2257ce17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_b46ad94e-712e-496b-b1cf-d6aaeeeb24c1" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_21b78d96-528b-4172-94d5-9ad351119e44" xlink:to="loc_us-gaap_RestrictedStockMember_b46ad94e-712e-496b-b1cf-d6aaeeeb24c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e4e444b6-910a-4027-976b-45fc8e98ca32" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_d573a941-1995-46e0-a641-b4d5913bb56b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_d573a941-1995-46e0-a641-b4d5913bb56b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_bc8d25fc-70ab-4f41-ae8c-52c8516a1047" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_666a8c64-aeaa-4f8f-8c4e-48add2e616d7" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_bc8d25fc-70ab-4f41-ae8c-52c8516a1047" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#WeightedAverageSharesCalculationofWeightedAverageSharesDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_70783267-6d8b-4987-8ef7-4717361d953a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_f36469ab-be05-4d31-a9ee-c6fbb7615308" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_70783267-6d8b-4987-8ef7-4717361d953a" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_f36469ab-be05-4d31-a9ee-c6fbb7615308" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_b9666401-e2be-4fbc-b7d1-428e85b25220" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_70783267-6d8b-4987-8ef7-4717361d953a" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_b9666401-e2be-4fbc-b7d1-428e85b25220" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_21e0138b-0fd2-4170-9ffa-621ab005979c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_70783267-6d8b-4987-8ef7-4717361d953a" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_21e0138b-0fd2-4170-9ffa-621ab005979c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_574dc205-55d1-434f-81d4-9dbc60ed92e8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_70783267-6d8b-4987-8ef7-4717361d953a" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_574dc205-55d1-434f-81d4-9dbc60ed92e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a9a3a01a-1bc6-4c39-9d97-43c5869fb386" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_574dc205-55d1-434f-81d4-9dbc60ed92e8" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a9a3a01a-1bc6-4c39-9d97-43c5869fb386" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma_9d915db7-0e41-485d-8639-198421221bb6" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a9a3a01a-1bc6-4c39-9d97-43c5869fb386" xlink:to="loc_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma_9d915db7-0e41-485d-8639-198421221bb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringCharges" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringCharges"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RestructuringCharges" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_20ad417a-f96f-4c61-ad00-fa72881c7744" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_da083130-c827-4505-9d2e-d6732fbed590" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_20ad417a-f96f-4c61-ad00-fa72881c7744" xlink:to="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_da083130-c827-4505-9d2e-d6732fbed590" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesTables" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesTables"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RestructuringChargesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_f4b61391-619f-4696-82fa-b6e1efb7dfca" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_6221128b-acd4-4eba-a133-b26ead8b5a26" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_f4b61391-619f-4696-82fa-b6e1efb7dfca" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_6221128b-acd4-4eba-a133-b26ead8b5a26" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_4ee691c8-ebb2-4df3-bf2d-3aeebd9fd8a8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_f4b61391-619f-4696-82fa-b6e1efb7dfca" xlink:to="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_4ee691c8-ebb2-4df3-bf2d-3aeebd9fd8a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RestructuringChargesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_ee60f389-11fb-45d0-a0b7-567099c04bae" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_2f1f5ab4-6f28-4114-a7ef-845b957d6d59" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_ee60f389-11fb-45d0-a0b7-567099c04bae" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_2f1f5ab4-6f28-4114-a7ef-845b957d6d59" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated_107eb47e-0c55-474a-b1b6-9d94e54c5aae" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_ee60f389-11fb-45d0-a0b7-567099c04bae" xlink:to="loc_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated_107eb47e-0c55-474a-b1b6-9d94e54c5aae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1_b9851f9d-ed08-4ba3-bcbc-ac09b0ddb08c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCost1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_ee60f389-11fb-45d0-a0b7-567099c04bae" xlink:to="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1_b9851f9d-ed08-4ba3-bcbc-ac09b0ddb08c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesSummaryDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesSummaryDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RestructuringChargesSummaryDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_8a852135-d48a-43f5-acea-06649712440a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_2ae69b94-e0f0-4335-aca0-53a4ee22892f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_8a852135-d48a-43f5-acea-06649712440a" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_2ae69b94-e0f0-4335-aca0-53a4ee22892f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_656e9eb5-36eb-4c87-97c3-3f658610ab44" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_2ae69b94-e0f0-4335-aca0-53a4ee22892f" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_656e9eb5-36eb-4c87-97c3-3f658610ab44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_656e9eb5-36eb-4c87-97c3-3f658610ab44" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_b3c6cca2-6e5e-47ce-b170-d688f473fdb8" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_b3c6cca2-6e5e-47ce-b170-d688f473fdb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_77fa7d3f-d12e-4d79-8bb7-a062aafa79ab" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:to="loc_us-gaap_ContractTerminationMember_77fa7d3f-d12e-4d79-8bb7-a062aafa79ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_4e2f324b-a339-433d-979a-a1b007d8ca8b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherRestructuringMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_f00e0d11-4793-4ea2-a15f-c7d3ac2f847f" xlink:to="loc_us-gaap_OtherRestructuringMember_4e2f324b-a339-433d-979a-a1b007d8ca8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_2ae69b94-e0f0-4335-aca0-53a4ee22892f" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1_61fc603b-3800-4b5a-8930-f8a3cd609441" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCost1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:to="loc_us-gaap_RestructuringAndRelatedCostExpectedCost1_61fc603b-3800-4b5a-8930-f8a3cd609441" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_aed04fad-7e8b-434d-8c4f-611782867624" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_0f30e74b-9fd6-4d64-b193-2d74e8ae5282" xlink:to="loc_us-gaap_RestructuringCharges_aed04fad-7e8b-434d-8c4f-611782867624" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#RestructuringChargesActivityinRestructuringReserveDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_c50b2dcc-bce2-4dee-9118-706cde4bccc3" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_244ba3c6-3f0e-474b-892e-105e679e1ec0" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_c50b2dcc-bce2-4dee-9118-706cde4bccc3" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_244ba3c6-3f0e-474b-892e-105e679e1ec0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_b0abd23c-1acb-43e9-bf64-3a5b38044d4d" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_244ba3c6-3f0e-474b-892e-105e679e1ec0" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_b0abd23c-1acb-43e9-bf64-3a5b38044d4d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_b0abd23c-1acb-43e9-bf64-3a5b38044d4d" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_5c7493d1-21d2-472f-acb7-80930b998896" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_5c7493d1-21d2-472f-acb7-80930b998896" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_92dad8fe-26d1-4d9f-b3a5-aecebd51c581" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:to="loc_us-gaap_ContractTerminationMember_92dad8fe-26d1-4d9f-b3a5-aecebd51c581" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_45e12e69-0cdb-438b-9fdf-a0993fbf9331" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherRestructuringMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_4a9a009c-e4dd-4cf7-a178-26d3624926be" xlink:to="loc_us-gaap_OtherRestructuringMember_45e12e69-0cdb-438b-9fdf-a0993fbf9331" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_632b5a46-3e3b-45fc-9580-19be74ede4bb" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_244ba3c6-3f0e-474b-892e-105e679e1ec0" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_632b5a46-3e3b-45fc-9580-19be74ede4bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_632b5a46-3e3b-45fc-9580-19be74ede4bb" xlink:to="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_82b96bd1-6373-47f1-abe9-0a5221f56140" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringReserve_82b96bd1-6373-47f1-abe9-0a5221f56140" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_8d746d2e-4ebc-41ed-84e7-82b24e21c74a" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringCharges_8d746d2e-4ebc-41ed-84e7-82b24e21c74a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/netLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring_c427fc4e-e7a9-4449-99d7-3246f5d91781" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_PaymentsForRestructuring_c427fc4e-e7a9-4449-99d7-3246f5d91781" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveSettledWithoutCash2_d03f2fde-4ae8-4cbd-b61d-535b538975c5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveSettledWithoutCash2"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringReserveSettledWithoutCash2_d03f2fde-4ae8-4cbd-b61d-535b538975c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment_27072295-93cc-4baa-b5f1-7976350d56ff" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringReserveTranslationAdjustment_27072295-93cc-4baa-b5f1-7976350d56ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_2187d9da-c4b7-499e-9513-16bd2474ca20" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_94b462cb-91c3-4a1c-b66f-0f273a11b70a" xlink:to="loc_us-gaap_RestructuringReserve_2187d9da-c4b7-499e-9513-16bd2474ca20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/SubsequentEvents" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SubsequentEvents"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/SubsequentEvents" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_f37aa8d5-c8ae-438b-b095-d19a030436df" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_d7986ac2-5b25-4df7-88fe-1e8bb5191d8e" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_f37aa8d5-c8ae-438b-b095-d19a030436df" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_d7986ac2-5b25-4df7-88fe-1e8bb5191d8e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20200628.xsd#SubsequentEventsDetails"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_4b5c3bc0-f22b-44d2-9e92-316a4344ac9b" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_0508771b-b91b-43f8-bf51-ecabe0e7cfa5" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_4b5c3bc0-f22b-44d2-9e92-316a4344ac9b" xlink:to="loc_us-gaap_SubsequentEventTable_0508771b-b91b-43f8-bf51-ecabe0e7cfa5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_0508771b-b91b-43f8-bf51-ecabe0e7cfa5" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_ecdade86-5a94-4591-b6c2-80f82cacf666" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_3b191ecc-71a5-4e80-8b37-7efcf7c3cf56" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_ecdade86-5a94-4591-b6c2-80f82cacf666" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_e905616e-48c6-4866-84f9-e55d1585982c" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_ecdade86-5a94-4591-b6c2-80f82cacf666" xlink:to="loc_us-gaap_SubsequentEventMember_e905616e-48c6-4866-84f9-e55d1585982c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_51e091c8-0448-4b2a-b743-b96fc6394369" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_0508771b-b91b-43f8-bf51-ecabe0e7cfa5" xlink:to="loc_us-gaap_SubsequentEventLineItems_51e091c8-0448-4b2a-b743-b96fc6394369" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Dividends_ea25153d-c425-4cc7-b550-63ede8913c97" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Dividends"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_51e091c8-0448-4b2a-b743-b96fc6394369" xlink:to="loc_us-gaap_Dividends_ea25153d-c425-4cc7-b550-63ede8913c97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>cgnx-20200628_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cgnx="http://www.cognex.com/20200628"
  xmlns:country="http://xbrl.sec.gov/country/2020-01-31"
  xmlns:currency="http://xbrl.sec.gov/currency/2020-01-31"
  xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2020-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="cgnx-20200628.xsd" xlink:type="simple"/>
    <context id="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="if2ca316ec02e481498b0cbcf89252fe1_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i71adb945812f4891952d2907d9b81b76_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i50c300c01cad466888f3adcd2745bef7_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i0b0706b68e684f83aa546dd2533ce44b_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-06-30</instant>
        </period>
    </context>
    <context id="i9003d025fdf74baf9cfde117be3e31e3_I20200329">
        <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-03-29</instant>
        </period>
    </context>
    <context id="i6d3d9cdf100e49429e0096f15c8f51c8_I20200329">
        <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-03-29</instant>
        </period>
    </context>
    <context id="i938a629326a0439aa43ad35cdac85063_I20200329">
        <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-03-29</instant>
        </period>
    </context>
    <context id="i1e9f2b6e17ba467f9e0e9d684bbde89e_I20200329">
        <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-03-29</instant>
        </period>
    </context>
    <context id="id8519e56581148ae8b301b041e6ee876_I20200329">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-03-29</instant>
        </period>
    </context>
    <context id="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i8a9e1ef6774044ef9190aafe3633273c_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i4d292a0e3d51452b98af45d0003e89eb_I20200628">
        <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-06-28</instant>
        </period>
    </context>
    <context id="icb2e5217f55f406289b5cabb8359f389_I20200628">
        <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-06-28</instant>
        </period>
    </context>
    <context id="ic26f54781e5c4a8886eddc97b739c7f5_I20200628">
        <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-06-28</instant>
        </period>
    </context>
    <context id="i96d78535cce74acdbf73cf711e8d9464_I20200628">
        <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-06-28</instant>
        </period>
    </context>
    <context id="iaec1d0005f3841edaa0f1a67e2658cbe_I20190331">
        <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>2019-03-31</instant>
        </period>
    </context>
    <context id="if439bca2e85b44968f4a4ab1683fd0e1_I20190331">
        <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>2019-03-31</instant>
        </period>
    </context>
    <context id="ib57c714e8813465ab9a6f10dbad1be98_I20190331">
        <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>2019-03-31</instant>
        </period>
    </context>
    <context id="i34398295dff14da1a866d30e00f8aa89_I20190331">
        <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>2019-03-31</instant>
        </period>
    </context>
    <context id="ib3897b228f05439eb381f0e036a97929_I20190331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-03-31</instant>
        </period>
    </context>
    <context id="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630">
        <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>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="id1958ec4cb8f46429d60ecb4713343a3_D20190401-20190630">
        <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>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630">
        <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>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630">
        <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>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630">
        <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>2019-06-30</instant>
        </period>
    </context>
    <context id="ic051ab77728e40908d6b485f1b354a8f_I20190630">
        <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>2019-06-30</instant>
        </period>
    </context>
    <context id="i804ab526c89e443f8b3dcaf6af2de12e_I20190630">
        <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>2019-06-30</instant>
        </period>
    </context>
    <context id="i0445be96163342e5b1962b12962e92f4_I20190630">
        <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>2019-06-30</instant>
        </period>
    </context>
    <context id="i5df802dd93044ae49cb3336212205376_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="ibe498205c18947f0bef7f72145695991_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="ia04ef572494a469e85e6da42fb4c2e6f_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i496c881206324a98a7057d07953934fb_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ic6f5006b10c5487f9c1175c4680b9707_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i1c643112133f451baa01d848b56a13f0_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ib8d6fc9c105641509da02b1704c72686_I20181231">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="i2c1b1a2a383241c8bb09a8280fc8a19d_I20181231">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="ib67475f7ae274115ba9d67504c6d47b1_I20181231">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="ic300f4175ae543be884f97db607cbd6b_I20181231">
        <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>2018-12-31</instant>
        </period>
    </context>
    <context id="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i4dd591ad2c334f38a05a749f22572a52_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i9dc01e71d6314fe6884aa8e36895f63e_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="if4f9afe0d6af4e54bbbb6d745623672b_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i751ce105a23043c9b8c7160cf868755e_I20200628">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i451bed49b98543ba8feeb4d38db529cb_I20200628">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i09ab9c2f3e284c039d5f1c7dabec64ea_I20200628">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i959c1d93f1da448ba0d6ed03b2b352fa_I20200628">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i7a338ee96e604cef913d651070774eeb_I20200628">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i9af2528fb3cb42b2856fd1a7841c74d4_I20200628">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i5c79b7f8d5714c1ca485ccd80bc001f8_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i7bd2b9926b0141c490ca0c40a367e622_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:ChiaroTechnologiesLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="if9ce6259d29647d6855d301fa7b1e39f_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i4b5cd194378142eeb95ce442c13207a2_I20200628">
        <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:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i1f553599986a436c9b3288c83cc53a3d_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i955df87e73494d7fa976f50036933ad1_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:RestructuringChargesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ie5d627cadb964791b6ccba23ebc74578_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i3f9be86c082d454982db4b1e9f417f66_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i524fffe11789474187ead333ba0d7920_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="icdd1279cdd444b3b8d446d8df78f669d_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ibc7324cdfd4248d09bec160bf8f94fa6_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i59c12507d0b642e9b81c2e821913ae17_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i27a24cdf51794e24ae3a5d31a6666690_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="if30d5aee2c44425da343f5d66f39d18f_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i85ff251260ad4df3bf4fef4a3c9db1b4_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i7428b2868c414661bdbe5132b920faf0_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="idfa3a82b761842d3a82f32a1be036e1e_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ia00037290a1f430e8012506014c58c72_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="id328d17eff4842a997835619d489bb34_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i4c49e8a5b27241c8a53e6dfe04b134b4_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ib004241936c04bb9ae9de0b6d0b240c5_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="ia44d8601ad7741d991c09e99ce636799_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ifc1802cbd48d47b89b0cfa0214579bbf_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ie53b122d392e48d78d2eb049e3278b50_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="if4e61c976baa40a2871a88e06a4e8c4d_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="iae3918a8cdad4e7a9bea1c3947b20656_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i30de0db3427742059c4e647dd6f45516_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i4aa8afd354c1497e8a82da39af166564_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ic589f29e9d0d424699fac022a6168312_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i55b1fd91b65b48cda665060e16c8da1c_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="id263e8429ddf42988c0b21b545b1ef16_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i36ca6a11d1ac4087ab59eca47da110cd_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i6c7a75be726544c3950ebaf23e4eefc6_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:InvestmentTypeAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ie83c429fea4647eeb2ed34a6a4a00424_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ia19541e3a9de4e59b3481c56398dfc07_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i1ce567eeb149442f9236fa3691572cf6_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i636ffc42e3da455abbb8e4da25901390_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i18c3dda1c1274643908d3ec134b34bea_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i1a1a1e7625f040bba2f256af3ded829b_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i5384f6f4408944488866d83556fdb79f_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i1f05ac941b69406b9637f7ccd30a80ef_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="ie48b0610188d40cc8ab1beab4a72816c_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i61b2208174334f058b8a75c11a91b001_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i06b719aac978489cbc1fdfb106387690_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i1bd1a72b1d41496d8f37717244d55fae_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i36c6597aaabe4fe8a6a2385278ad7483_I20200526">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="i144afef51ddb4238b254c1bef001d17c_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i035c043ef297493cb2548f6c14daefae_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i52434fd077654f68a8f6068def6a4808_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i3d13b94b64c443f88f275cd93466c73e_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i3ad2ace0eca940538df3133877e1ac52_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:KRW</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ie5803dec173141819033849ca19c6690_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ibed22609e15b4e6681439903fb4dfb17_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i03deb9851e37488aa7e18c5b5a973ad0_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ia34a7ab335404395a5a6468d1499242e_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="idf51f16be7c64abc9393c4d0c69fa8c8_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i954f0b7df2b84ed6ac4c336e4218ad01_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i0ac2e1f496f1499591debaa5712935eb_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="iadc04b1d29ad44db9ede836751e543c7_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i6894568cee88443cb066c775905e6323_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="id7570fd5e2974a659ce9ebb785ae3365_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i1b73edf6a49f4b94ae07c25974b211ec_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:TWD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i36467e5f20c049afa2047642a807ca07_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:TWD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ib2a6509c1e5e41a58c9916af202e1dd6_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ic2e0750327a143a0abf3a34b12bff717_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i3210059d0c934169b9bff4820113a080_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="ia89b9a9abd2a403383c5bb5122616550_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i06aa76c6ba1f4c87b3a8d44c4b2e3844_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ie5e09ca76b6e456781fb8f68ccfc82df_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ieb8511a4b6a44074b57b566b2eea1569_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="idd70e8dc603e4b31a2d3b584eab61514_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">cgnx:AccruedExpensesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="id0e2a9c3d94042afb732e0872efdfca6_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i3b0029c533124788896ad55afe18eae3_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i5bd2140e1d66490ab6f7339ef2eff581_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i122b2de417f04d2d9a715ebc04773a49_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ForeignCurrencyGainLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="ie3fd972f5b0b4967bf88d0e4de64b1e5_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="icd0edf20692d48dbbe6d886aa44e4d84_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="ia163194839f34b64a4b66b46db94b3d8_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i1e754cc563fb403d81a3a6443bfadb43_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i5d22292744df4d90b9f2ce7b901b3753_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ia1a183ea47fc4f63a7a2cc9f00e90e77_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i150945a1664c4725b713b1051754f224_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i615c0a4086a840c7bc790f6a8a5f94d5_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="ia92ee68fa1bf4f6e98ff25169ba78ae7_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i08025680923a48a4b721007531ace7bd_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i903458e444704eabbd9faea8afa62769_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i21e18f7d15034eefab74e871020222be_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i0b77066fbfca41f8855e5c3a31f6e128_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i8c231dd68f5f4ba7b246f0b6475c4492_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="if2ea6ea03d6b41eca4e15a32e6db30e9_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i694405d7706f467e94016e46a85639a2_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AsiaExcludingChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i50380bb827a94448a6ac013d0bc30e84_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i1a04c99690a04b70869650f81a2655ca_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i55f5d87a128a4fc586b4d06d1292398c_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="iadca4fe23d914d9a90eadb8fc73e7efa_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductsandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="ib256bbe2ed3a4649983bf022671c4f27_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i1427b972f8194e9bb61bbdeb2ccd1d6a_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i2cb65854f49c47899ae94365b923117c_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ice4024e721f04fb5b7084bc81e5ad7cd_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationSpecificCustomerSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="ie90d730c1a5d4b67aae424e063c904d5_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="iabeff905e5ca48a4b1ca617ac169e8c0_D20200101-20200628">
        <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:PlanNameAxis">cgnx:GeneralStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i391830b02fb64117bcee6d7a82c55844_D20200101-20200628">
        <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:PlanNameAxis">cgnx:GeneralStockOptionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i78f7ce06fb6c4a8abe700d7761a911b6_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i7bd2b61d8f8f46cc9ab61ef640de74bc_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i9e0c96315b424e56924808a79a15e591_I20191231">
        <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>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i8ee7be1a6ecf4ed7815ed69f7dac42cd_I20200628">
        <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>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ib8b0bf2a77834ce88571dd01f83e0cca_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i55b074489f724905bac5ce61e111c0c8_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i06a9f689529d44ea9723e6cc0ac766fa_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i2ef068d8c3c14069905ba89e9a6b5eaa_D20190401-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="if63a5b3ff51747a7acf2b9763080259c_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i8510b9a70cf64f7fbdd4bcffe5856f2d_D20190101-20190630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfGoodsTotalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="ie7d349cddf79450fb7ec61b59469955c_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ie522880486f84d7595b434ed962eacd6_D20190401-20190630">
        <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>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i1549c24baeea47a0b54ff9b987a12358_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ibb66e794d1264711afdf4f25a22af3de_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i5f0dde5ff23b474383f628184c115137_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i0bcda0824b2844a28394aaae0d03e9d3_D20190401-20190630">
        <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>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i2f37aff1307a4ab9be50829bdda812dc_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ibe0b75c6204c46e9b19b07d490ffda88_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i979d000c5483415184aa8b9629ee1c46_I20181029">
        <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="i5cde25447c244a5a90a1b77b05f9c5f1_I20200628">
        <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>2020-06-28</instant>
        </period>
    </context>
    <context id="i0097f887461345248832cb36df04c1cd_I20200329">
        <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>2020-03-29</instant>
        </period>
    </context>
    <context id="i5d0c9481bd7d4ef49f533e75018c9e9b_I20200312">
        <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="i7a9496e00eaf4823b5faa46ab099e121_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i49d1dd25fc2b4d3abb5872982813204c_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i7746c332c79744f58927e204e4f386b3_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i07bda74078784d8590fefad2ccda6876_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="id7827367498f437bbfb70a8de8fd475d_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i1fb5903360cf4323afe3f1b01cd8f7a1_D20190401-20190630">
        <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>2019-04-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i663c8efc644c4d02835ccb0ff0733027_D20190101-20190630">
        <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>2019-01-01</startDate>
            <endDate>2019-06-30</endDate>
        </period>
    </context>
    <context id="i3ffc82f09f5545fa97686d1d3ccb7cd1_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ic32e6778efab4c1baa684793e82b924d_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ic537b61975ca4beba7154e52aeb4ef46_I20200526">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="ife0e92d165ae475ebc3a85b24bcf6df2_I20200526">
        <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>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="i0dee04a40007403cade82e8888fd9e9f_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i0211d27ce6ab4f02aa4d36e19e27db7e_I20200526">
        <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>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="i91ce5770a5e241e5b402ace756c1ae96_D20200330-20200628">
        <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>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="iaa4635907fac42d9b5c93270fff00f32_I20200526">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="i453326dcf5964e45afcc4c90e9a8a856_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i94185f4fe5124c19b3c0b7f61fd3d802_D20200526-20200526">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-05-26</startDate>
            <endDate>2020-05-26</endDate>
        </period>
    </context>
    <context id="idaab6b4b384b46cf923fb1e000fc42c1_I20191231">
        <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>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i66e2905874d54c2caf75916e1745020c_I20191231">
        <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>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i087c7a0293b843fa939b25a159478a61_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628">
        <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>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i00752329dd5e416782e4cef86994ba03_I20200628">
        <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>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="ibb57e579a32649ad80b43341a1de4d0b_I20200628">
        <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>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i89b581a88c95490187c013c276398814_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="id52911d2174e4651aeb38a8ca2dabb70_D20200729-20200729">
        <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>
            <startDate>2020-07-29</startDate>
            <endDate>2020-07-29</endDate>
        </period>
    </context>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usd">
        <measure>iso4217:USD</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="krw">
        <measure>iso4217:KRW</measure>
    </unit>
    <unit id="eur">
        <measure>iso4217:EUR</measure>
    </unit>
    <unit id="jpy">
        <measure>iso4217:JPY</measure>
    </unit>
    <unit id="twd">
        <measure>iso4217:TWD</measure>
    </unit>
    <unit id="cad">
        <measure>iso4217:CAD</measure>
    </unit>
    <unit id="sgd">
        <measure>iso4217:SGD</measure>
    </unit>
    <unit id="group">
        <measure>cgnx:group</measure>
    </unit>
    <unit id="employees">
        <measure>cgnx:Employees</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV8xLTItMS0xLTA_0a7ae6e9-c031-40e1-9a91-16bdf96e895e">0000851205</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV8yLTItMS0xLTA_8bec0d1c-d0bb-4e9e-a8e2-0e59dd249727">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV8zLTItMS0xLTA_a960d81e-9dc1-4bbb-a0d4-af5c321aebc6">2020</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV80LTItMS0xLTA_1a4d2938-bcc2-4eee-a9e3-e357005867d5">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV81LTItMS0xLTA_19d2323d-c250-4e9a-949c-d93f6e74ab11">false</dei:AmendmentFlag>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80L2ZyYWc6ZGVlNjMyMTZjODdmNDIwNDkyOGI4NDQwY2JhYTQzYzUvdGFibGU6YzY0Mzk5M2QxMGRiNDI3YmJkZDJmMTQyNzlmZjMyMWUvdGFibGVyYW5nZTpjNjQzOTkzZDEwZGI0MjdiYmRkMmYxNDI3OWZmMzIxZV82LTItMS0xLTA_787ce38d-5c4f-4c20-9965-2faef38591f4"
      unitRef="shares">173047292</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS0xLTEtMS0w_32b93a13-4e86-40b3-bdc0-eefd3366556d"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS0zLTEtMS0w_0b4eb99f-46dc-4d43-8f5e-afb46ba92dba"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS01LTEtMS0w_ee7159e0-7ac6-4c7e-88d3-62a3fe3514d7"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMS03LTEtMS0w_0f364af2-c769-4f23-8754-ec16a81468a4"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi0xLTEtMS0w_f26a16f7-c388-4054-bd9c-1a5c058a26a8"
      unitRef="usd">-836000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi0zLTEtMS0w_4d36e92d-c823-4f12-b8dc-41ab7028e221"
      unitRef="usd">239000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi01LTEtMS0w_a5e28c7e-2b75-4297-8911-3aa8b780bc9a"
      unitRef="usd">-1788000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMi03LTEtMS0w_f4654480-661a-4b1f-8144-b693b1ef85ce"
      unitRef="usd">507000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy0xLTEtMS0w_9affa18e-1691-4db7-ade1-4a5c3f51814b"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy0zLTEtMS0w_2ee3f9d7-740a-4467-9279-af7f1c1b382c"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy01LTEtMS0w_c62e19c3-27c2-4edd-bb30-d003052935f2"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xOS9mcmFnOmE0ZDQ4ZDI5MjQ0ODQwNjdhYjZmYzAzNjkwZTYyM2ZlL3RhYmxlOjJmZDEzZmEwYTdlYzQ4MjdiZGIyMmQ0ODcyOGQwMmZjL3RhYmxlcmFuZ2U6MmZkMTNmYTBhN2VjNDgyN2JkYjIyZDQ4NzI4ZDAyZmNfMy03LTEtMS0w_ecb79068-916f-452f-8e55-75a9d2ed73ff"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMS0xLTEtMS0w_f1dea02c-3d72-4fee-9632-ec73ab133713"
      unitRef="usd">2235000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMS0zLTEtMS0w_8c498053-fbca-4855-a847-c16819c03457"
      unitRef="usd">1821000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMi0xLTEtMS0w_eb2c2206-5b96-4279-bf87-4556b33c9e43"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMi0zLTEtMS0w_f4676ff6-788a-4a00-a438-8d0002151c7f"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMy0xLTEtMS0w_99d8ba66-c118-49d3-8779-9477d4a2dff2"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfMy0zLTEtMS0w_95e11892-4ab5-420c-92ed-e72e8e03fc4e"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfNC0xLTEtMS0w_a55f4e63-4241-4fa9-af8f-6b637e61b278"
      unitRef="shares">173047000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yNS9mcmFnOjdjN2IyYmYwMjgwMjRiZjU5MmQzZDBmMTY1Y2RmZWZmL3RhYmxlOjYzYTFjMGNiODllYzRlYzdiMjYzMDFiMmQ1MjY5YTNiL3RhYmxlcmFuZ2U6NjNhMWMwY2I4OWVjNGVjN2IyNjMwMWIyZDUyNjlhM2JfNC0zLTEtMS0w_a67815f6-6365-41d7-99f6-183986fff58e"
      unitRef="shares">172440000</us-gaap:CommonStockSharesIssued>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi0xLTEtMS0w_ec5fdbbc-cea0-44e5-bd1f-c4f43a723405"
      unitRef="usd">-836000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi0yLTEtMS0w_6176f1fb-1e69-447e-a0a1-6fb4fe769d42"
      unitRef="usd">239000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi0zLTEtMS0w_587f67c9-75f1-4fae-b90b-384dee962b22"
      unitRef="usd">-1788000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zNC9mcmFnOjBmMzAzYzIxOWMzNTQyZWNiMWQ3ZjI2YTYwMWQxYjVkL3RhYmxlOjg5MDEzOWZlNmQ1MjQ0ZDZhYjg5ZmQ5YTIxMGExZmY1L3RhYmxlcmFuZ2U6ODkwMTM5ZmU2ZDUyNDRkNmFiODlmZDlhMjEwYTFmZjVfMi00LTEtMS0w_eba999de-38ba-478f-8c7e-46d6aa3bab77"
      unitRef="usd">507000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="ie5d627cadb964791b6ccba23ebc74578_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80OS9mcmFnOjgyYWRhZjFkZTU2YzRmZmJiZjE0MmFlMmM4YzA0Y2E2L3RleHRyZWdpb246ODJhZGFmMWRlNTZjNGZmYmJmMTQyYWUyYzhjMDRjYTZfNzI_6f0d59bc-f9b2-4bd6-868e-911e44acf791"
      unitRef="usd">1153000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="iabeff905e5ca48a4b1ca617ac169e8c0_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzk2_c9b27df8-2451-462e-927f-008a5aa7ff1c">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="iabeff905e5ca48a4b1ca617ac169e8c0_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83OS9mcmFnOjBkOTE4Yjg3ODRjYTQ4Mjk4ZTdkMmE5MjM1Mzg3M2NjL3RleHRyZWdpb246MGQ5MThiODc4NGNhNDgyOThlN2QyYTkyMzUzODczY2NfMTUy_e4770a79-2325-4071-8a8e-98f7b8d45826">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83OS9mcmFnOjBkOTE4Yjg3ODRjYTQ4Mjk4ZTdkMmE5MjM1Mzg3M2NjL3RleHRyZWdpb246MGQ5MThiODc4NGNhNDgyOThlN2QyYTkyMzUzODczY2NfMjU0_79d803e6-591b-4417-aad8-efdc62a8a9f9"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <dei:DocumentType
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODI3_d2c85923-f19e-4810-a5d1-3cd45b79232f">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6OWUzZjVhYmQ3NmRhNGRmZThjZDA1MTU2ODI2ZWIyMWYvdGFibGVyYW5nZTo5ZTNmNWFiZDc2ZGE0ZGZlOGNkMDUxNTY4MjZlYjIxZl8wLTAtMS0xLTA_426217b7-4b79-4c1e-8216-0dd35af3c41c">true</dei:DocumentQuarterlyReport>
    <dei:DocumentTransitionReport
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6MTEzODIxMjNiOTExNDdjZmI1Njk2MTY5MzdiZjliNDIvdGFibGVyYW5nZToxMTM4MjEyM2I5MTE0N2NmYjU2OTYxNjkzN2JmOWI0Ml8wLTAtMS0xLTA_332df827-707a-4836-a9ab-e8633b77390c">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMx_5804c7c2-0c2c-4614-a542-e0431280e661">001-34218</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMy_f4d08208-f5d4-441b-9ae4-8ed5d5fa4e6a">COGNEX CORP</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6YTJkMjE1YjUyNmM2NGFiY2IxMmU0NDJlMjFkZmE2YmEvdGFibGVyYW5nZTphMmQyMTViNTI2YzY0YWJjYjEyZTQ0MmUyMWRmYTZiYV8wLTAtMS0xLTA_aa92cb68-2d51-4d43-b549-12f40fb99de2">MA</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6YTJkMjE1YjUyNmM2NGFiY2IxMmU0NDJlMjFkZmE2YmEvdGFibGVyYW5nZTphMmQyMTViNTI2YzY0YWJjYjEyZTQ0MmUyMWRmYTZiYV8wLTItMS0xLTA_6283bd85-5120-45c2-b680-dba3c0061ec0">04-2713778</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMz_f46b145c-b8cd-40b2-993e-dc6883b26f42">One Vision Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODM0_d4804612-a254-4812-a1f7-cd038d0d7c52">Natick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODM1_9073c331-96ad-42a2-9ed8-2185ed1cf8cf">MA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODI5_eadf3e79-7e26-4d7e-bc42-4d1d0713e2ec">01760</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODMw_c05f63c9-683e-43fe-8f44-64c7fa158cd4">508</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xODI4_398acfb7-5d0c-4ad0-a5a1-c16a9badd304">650-3000</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZGUzYjk2MzU3MWM3NDMwMGFkNDFkYmJmNzQ5YTg4M2UvdGFibGVyYW5nZTpkZTNiOTYzNTcxYzc0MzAwYWQ0MWRiYmY3NDlhODgzZV8xLTAtMS0xLTA_fb6da318-0efe-4211-95d6-1ea0ab2147b6">Common Stock, par value $.002 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZGUzYjk2MzU3MWM3NDMwMGFkNDFkYmJmNzQ5YTg4M2UvdGFibGVyYW5nZTpkZTNiOTYzNTcxYzc0MzAwYWQ0MWRiYmY3NDlhODgzZV8xLTEtMS0xLTA_ee3d90d8-8738-46ab-83f1-90ad37ea01af">CGNX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZGUzYjk2MzU3MWM3NDMwMGFkNDFkYmJmNzQ5YTg4M2UvdGFibGVyYW5nZTpkZTNiOTYzNTcxYzc0MzAwYWQ0MWRiYmY3NDlhODgzZV8xLTItMS0xLTA_62fdad44-679a-4f97-818f-101fcf195058">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6NjFlZWMxOTY0YzBiNGEyNzkxMWM4NGFmZDc5MTQzMjEvdGFibGVyYW5nZTo2MWVlYzE5NjRjMGI0YTI3OTExYzg0YWZkNzkxNDMyMV8wLTItMS0xLTA_7d87bf64-7716-43c5-9719-0647030045a7">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6OWQ2YWIwZjcwYWZmNDE4ZmJjYmNhYzUyZTUyMmM0MjUvdGFibGVyYW5nZTo5ZDZhYjBmNzBhZmY0MThmYmNiY2FjNTJlNTIyYzQyNV8wLTItMS0xLTA_b210c515-409c-4974-b250-fa560444f5e8">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZDZjYjY4YTY2MTRmNDQ2Y2E0ZDc2YjAyMmNjMDAxYmEvdGFibGVyYW5nZTpkNmNiNjhhNjYxNGY0NDZjYTRkNzZiMDIyY2MwMDFiYV8wLTAtMS0xLTA_95cb473f-5861-4263-b8e8-8f36d221a17a">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZDZjYjY4YTY2MTRmNDQ2Y2E0ZDc2YjAyMmNjMDAxYmEvdGFibGVyYW5nZTpkNmNiNjhhNjYxNGY0NDZjYTRkNzZiMDIyY2MwMDFiYV8xLTctMS0xLTA_addfa91d-dbff-4db6-9a32-381756dbfa13">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6ZDZjYjY4YTY2MTRmNDQ2Y2E0ZDc2YjAyMmNjMDAxYmEvdGFibGVyYW5nZTpkNmNiNjhhNjYxNGY0NDZjYTRkNzZiMDIyY2MwMDFiYV8yLTctMS0xLTA_5d743575-9fec-4d34-ab20-e787c53a1d27">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGFibGU6OTA0YTYxN2NlNmJlNDY0Y2EyNWRiZjY3M2M5NTg2MTMvdGFibGVyYW5nZTo5MDRhNjE3Y2U2YmU0NjRjYTI1ZGJmNjczYzk1ODYxM18wLTMtMS0xLTA_03f5671e-2d8e-4293-b31a-c94bf0182ef7">false</dei:EntityShellCompany>
    <dei:DocumentPeriodEndDate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xNzI2_cdf11108-6395-404e-9e02-342be18b11fe">2020-06-28</dei:DocumentPeriodEndDate>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xL2ZyYWc6N2VjZTQxMzRhZGY0NGU2NDkyNTBjZmNiNDZlOGEwMmYvdGV4dHJlZ2lvbjo3ZWNlNDEzNGFkZjQ0ZTY0OTI1MGNmY2I0NmU4YTAyZl8xNzQx_787ce38d-5c4f-4c20-9965-2faef38591f4"
      unitRef="shares">173047292</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy0xLTEtMS0w_e238d109-de6c-43be-9905-2556df51b898"
      unitRef="usd">169097000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy0zLTEtMS0w_c961058e-8dc2-48c6-ba16-2d0ce4b5843d"
      unitRef="usd">199047000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy01LTEtMS0w_aede307c-bece-48a1-b24d-d9513bdd501d"
      unitRef="usd">336332000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMy03LTEtMS0w_d66cdb14-7aec-4fab-b4c5-9f17ce2728a7"
      unitRef="usd">372531000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC0xLTEtMS0w_381121b3-d484-40eb-ad76-b71e495224b9"
      unitRef="usd">50320000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC0zLTEtMS0w_55f99371-6924-4430-8546-a81d53a12b72"
      unitRef="usd">50967000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC01LTEtMS0w_a5af3a2b-2d5a-4d63-be6d-bca06cb8d897"
      unitRef="usd">91520000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNC03LTEtMS0w_b6bf5f6d-6520-4100-9b95-9fb53eafc8a2"
      unitRef="usd">97251000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS0xLTEtMS0w_cb7617a1-9385-40ef-b269-86f5ec596428"
      unitRef="usd">118777000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS0zLTEtMS0w_5a4775c5-99fe-407c-bbb4-2a6d35ce2947"
      unitRef="usd">148080000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS01LTEtMS0w_f1213937-0ce7-4090-875a-adf45911cd76"
      unitRef="usd">244812000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNS03LTEtMS0w_3a42cc0f-8fb3-4070-b848-683b37c5bff1"
      unitRef="usd">275280000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi0xLTEtMS0w_e8f9937a-75ae-488a-82a3-9debd3e62a5e"
      unitRef="usd">30397000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi0zLTEtMS0w_b2412fd0-748a-4ab1-bc6c-7b3ad15cefc1"
      unitRef="usd">28079000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi01LTEtMS0w_85e82b88-8814-44e9-ab56-92e92256f695"
      unitRef="usd">66343000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNi03LTEtMS0w_bff4cc42-5d61-42fe-92d8-76b268a472df"
      unitRef="usd">58321000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy0xLTEtMS0w_b1f26be3-2324-40db-8b2f-a00a35d4de23"
      unitRef="usd">60153000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy0zLTEtMS0w_a54315ca-a40e-4c66-a1b6-5a906fced3c0"
      unitRef="usd">68245000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy01LTEtMS0w_4642e85c-e384-4a23-910b-b4ecd740bc47"
      unitRef="usd">129291000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfNy03LTEtMS0w_e21469da-c237-40cd-bd17-f12be0fd2774"
      unitRef="usd">135056000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:RestructuringCharges
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC0xLTEtMS03NzI1_75523842-12c5-4d7c-9260-1dccaf6de270"
      unitRef="usd">14798000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC0zLTEtMS03NzI3_b356fd20-a195-44e3-91b4-bea1cce1ec0a"
      unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC01LTEtMS03NzI5_7843de83-e613-4cf2-9144-aabefaad618f"
      unitRef="usd">14798000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOC03LTEtMS03NzMx_d21d82ac-2c5c-4bad-9150-f2806c5e441d"
      unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS0xLTEtMS03NzI1_642c447b-10c6-4726-a808-4b8612616c7c"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS0zLTEtMS03NzI3_2c285c91-4d75-48ac-87cf-ec49c1112572"
      unitRef="usd">0</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS01LTEtMS03NzI5_3bd2b575-3f20-481b-8070-4320eee25ce8"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfOS03LTEtMS03NzMx_03f41652-670e-4436-9e0c-229478f514d8"
      unitRef="usd">0</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:OperatingIncomeLoss
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtMS0xLTEtMA_4e28bdeb-5b5b-4e9c-a2f8-d7928986d0ca"
      unitRef="usd">-6142000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtMy0xLTEtMA_af6c6324-d2e7-4aa8-a0a8-9b97cfa8c8be"
      unitRef="usd">51756000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtNS0xLTEtMA_e9db0964-1711-4340-bd78-d6217e362e2c"
      unitRef="usd">14809000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTAtNy0xLTEtMA_260266ef-20a6-471f-987e-eaadc6e48bcd"
      unitRef="usd">81903000</us-gaap:OperatingIncomeLoss>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtMS0xLTEtMA_0981cb32-7b4b-485d-bf9a-71da620afe67"
      unitRef="usd">336000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtMy0xLTEtMA_cdc5fe9d-4fc6-4d24-8089-85aeeaf04ea6"
      unitRef="usd">140000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtNS0xLTEtMA_6f4acd5e-29ae-4363-b150-5174953b238a"
      unitRef="usd">-2667000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTEtNy0xLTEtMA_f8c49a8d-487c-487c-95e6-a685bd5c1dcb"
      unitRef="usd">-108000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItMS0xLTEtMA_fb9de3c5-a5fc-496f-b3a4-2e64fb1e2519"
      unitRef="usd">3291000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItMy0xLTEtMA_80313d4c-ca36-416b-be20-dc518bfa272d"
      unitRef="usd">5223000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItNS0xLTEtMA_fcaafafa-d8e1-4176-94b3-e54efa995a92"
      unitRef="usd">8520000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTItNy0xLTEtMA_5ba6f422-1bb3-44ab-ab84-8207fe86fc71"
      unitRef="usd">10128000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtMS0xLTEtMA_cfe336a3-6853-4bd8-af4c-146e6456ab0b"
      unitRef="usd">203000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtMy0xLTEtMA_72c21930-770f-4349-880a-78a84526f324"
      unitRef="usd">-144000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtNS0xLTEtMA_c1390134-5fb5-4133-bdb4-b161cc94ddc0"
      unitRef="usd">20000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTMtNy0xLTEtMA_791a0630-2e50-437b-bef6-cfe7d6cd9feb"
      unitRef="usd">783000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtMS0xLTEtMA_d58e0a37-9e22-46c0-8ef5-701db8bb6ef9"
      unitRef="usd">-2312000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtMy0xLTEtMA_be2a7ed6-15ae-4299-b8a3-a917bdeeb712"
      unitRef="usd">56975000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtNS0xLTEtMA_781af8cf-1b1a-4c0c-bbfa-b90c86690e2e"
      unitRef="usd">20682000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTQtNy0xLTEtMA_ce4bb35b-42e3-4549-8995-d3002df0c7e1"
      unitRef="usd">92706000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtMS0xLTEtMA_9a18caf9-cf75-4199-8cf7-07167656fe88"
      unitRef="usd">-1170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtMy0xLTEtMA_4a9ca484-1c36-446d-8229-4d5fa574e134"
      unitRef="usd">8226000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtNS0xLTEtMA_02e7f427-75c6-40dd-8dc6-1b663349d910"
      unitRef="usd">1347000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTUtNy0xLTEtMA_257fcc1e-eef6-49f9-99e9-c1e4ec851834"
      unitRef="usd">10853000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtMS0xLTEtMA_00cc20df-c7e9-42dd-8db8-9b0b65947788"
      unitRef="usd">-1142000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtMy0xLTEtMA_414d7e79-9384-40b0-a324-51aa88cdaf4d"
      unitRef="usd">48749000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtNS0xLTEtMA_63b87a27-4ea8-4f70-acd2-a2b97d9f372a"
      unitRef="usd">19335000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTYtNy0xLTEtMA_b0a9c6fc-6c81-4336-b54b-0d0edd76d15c"
      unitRef="usd">81853000</us-gaap:NetIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktMS0xLTEtMA_8713f14d-a9ee-4e57-97d3-4ab1951d5d5c"
      unitRef="usdPerShare">-0.01</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktMy0xLTEtMA_8f4a1cc6-5f1d-4482-8a2e-746f432ac2a1"
      unitRef="usdPerShare">0.28</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktNS0xLTEtMA_04c977b9-bafe-4475-a9ca-91daeaef8096"
      unitRef="usdPerShare">0.11</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMTktNy0xLTEtMA_9c6efd94-dac2-4429-8e12-ba7104be82eb"
      unitRef="usdPerShare">0.48</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtMS0xLTEtMA_440ffc7a-5745-4904-8485-8274c8f89ab3"
      unitRef="usdPerShare">-0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtMy0xLTEtMA_36f76418-08da-4397-b02c-a87ae5bcb8f1"
      unitRef="usdPerShare">0.28</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtNS0xLTEtMA_6a1b7360-1528-4a8f-8841-c595b08264c8"
      unitRef="usdPerShare">0.11</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjAtNy0xLTEtMA_888cb76b-5697-4bf2-93c1-a3a1d1b3f698"
      unitRef="usdPerShare">0.47</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtMS0xLTEtMA_e291411a-392c-41dd-8d35-e6f88456b04e"
      unitRef="shares">172283000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtMy0xLTEtMA_c0aa8b9c-36c9-4175-bf32-4542a89619f0"
      unitRef="shares">171318000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtNS0xLTEtMA_9a01ce95-04ea-4fe5-9e50-8d6a453a2eaa"
      unitRef="shares">172345000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjMtNy0xLTEtMA_420c5743-b4b5-4e18-9009-c15e97ce7f6b"
      unitRef="shares">171209000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtMS0xLTEtMA_ef7596d3-16e0-4def-b310-4c94e3634bd1"
      unitRef="shares">172283000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtMy0xLTEtMA_49f9820e-f6a0-4ec1-a7a3-689ecbbfd7ef"
      unitRef="shares">175448000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtNS0xLTEtMA_082c22f3-d863-45a1-8de6-39035bd9aa9f"
      unitRef="shares">175499000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjQtNy0xLTEtMA_4a70494e-d421-43aa-a688-9fa11cf9a42b"
      unitRef="shares">175528000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtMS0xLTEtMA_4fdb9c04-3544-4e8c-8442-bc676725507e"
      unitRef="usdPerShare">0.055</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtMy0xLTEtMA_c0e38046-c05e-4be6-aaad-874711648a00"
      unitRef="usdPerShare">0.050</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtNS0xLTEtMA_a1f328d0-933e-462e-9d77-d8ef81bc5763"
      unitRef="usdPerShare">0.110</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xMy9mcmFnOjExODExYzA5YjZkNDQ4NGU5NGY1ZjllYWQ2ODhlNzQ3L3RhYmxlOmZhMjRkYzQ3MTUyOTRlODg4NTY5N2ViM2MxYWIwMzM3L3RhYmxlcmFuZ2U6ZmEyNGRjNDcxNTI5NGU4ODg1Njk3ZWIzYzFhYjAzMzdfMjYtNy0xLTEtMA_889fa862-3ce0-4182-87d6-5947bb9e17ce"
      unitRef="usdPerShare">0.100</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:NetIncomeLoss
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy0xLTEtMS0w_120a8246-8afc-4803-b5fa-db87e03a516e"
      unitRef="usd">-1142000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy0zLTEtMS0w_1e182018-f42c-4d7f-be0f-e651253bf002"
      unitRef="usd">48749000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy01LTEtMS0w_53a5a3b6-acfd-4d1e-a45d-388c87ca036b"
      unitRef="usd">19335000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMy03LTEtMS0w_dbbbacb4-3e01-40b9-94e3-12b33dd01934"
      unitRef="usd">81853000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtMS0xLTEtMA_935d7570-d09c-4fc6-acc7-d1bb68b62b49"
      unitRef="usd">12451000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtMy0xLTEtMA_87c20b04-3761-4de4-85cc-d5f1fd6af4f1"
      unitRef="usd">2311000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtNS0xLTEtMA_a83a2e63-6a07-4702-8d1b-44af54c6c408"
      unitRef="usd">8590000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTEtNy0xLTEtMA_c10f4293-c51e-4b20-98fc-411ccb23fa2c"
      unitRef="usd">4562000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItMS0xLTEtMA_f070eeb6-5d71-47b1-a754-c7d0a6a0325d"
      unitRef="usd">85000</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItMy0xLTEtMA_b2b281f2-571a-4304-a423-73119474eac1"
      unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItNS0xLTEtNTUzOQ_33f68f61-cb7b-4278-9f23-e1bfc65550b5"
      unitRef="usd">-75000</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTItNy0xLTEtNTUzOQ_3c4c26c0-db2e-475d-9d32-f6eac0bbd833"
      unitRef="usd">0</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtMS0xLTEtMA_40dd6a37-705b-48b8-9ada-11199d403096"
      unitRef="usd">955000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtMy0xLTEtMA_de400199-9c92-4a5d-8604-05e0e7929738"
      unitRef="usd">382000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtNS0xLTEtMA_a7942e85-4bef-4b12-8fd8-af98bc625291"
      unitRef="usd">2805000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTMtNy0xLTEtMA_6f61fe4c-be19-4859-98f9-99b205d043c6"
      unitRef="usd">422000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtMS0xLTEtMA_ec2ab830-b5ff-474c-8805-ef8b72722bd2"
      unitRef="usd">11411000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtMy0xLTEtMA_2d0a8ba9-9147-4d2b-9d6f-3ee84f6155e0"
      unitRef="usd">1929000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtNS0xLTEtMA_e3c78d4f-a187-4f27-8ed6-17c9523b5360"
      unitRef="usd">5860000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTQtNy0xLTEtMA_7ea4446f-2fb4-42d4-beaa-5218012619df"
      unitRef="usd">4140000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctMS0xLTEtMA_bafb6003-70f7-40d6-bacf-bfb8e51d54b3"
      unitRef="usd">1903000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctMy0xLTEtMA_61d07705-e3bf-4a74-9545-c926b8961232"
      unitRef="usd">-663000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctNS0xLTEtMA_02bb9b07-b359-4534-96b0-75b800a93438"
      unitRef="usd">-5462000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTctNy0xLTEtMA_02a17057-e8c2-4d81-8cb3-6e7d8ba5628d"
      unitRef="usd">-445000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtMS0xLTEtMA_5ede8a13-5eef-4c0c-a971-784f5f527fdb"
      unitRef="usd">1903000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtMy0xLTEtMA_70d8a65f-2e12-482e-addf-efa2567c38d5"
      unitRef="usd">-663000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtNS0xLTEtMA_d4b21f7c-247a-4caa-a512-f33a3d2c0485"
      unitRef="usd">-5462000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMTgtNy0xLTEtMA_464e7fa4-00f6-44d3-b6cf-79b366e15a0c"
      unitRef="usd">-445000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtMS0xLTEtMA_aa42f469-1d99-484e-a6b7-656e6f2b09d6"
      unitRef="usd">13314000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtMy0xLTEtMA_1283ed55-470d-40f4-a433-f1cfde9183c4"
      unitRef="usd">1266000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtNS0xLTEtMA_46538d36-5ad1-4b66-9f86-e5110961b1a9"
      unitRef="usd">398000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjAtNy0xLTEtMA_5201452b-3098-4624-87f4-e4965f7f34f8"
      unitRef="usd">3695000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtMS0xLTEtMA_8ddc713e-8cba-4ecb-9e29-f36fe508cdb6"
      unitRef="usd">12172000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtMy0xLTEtMA_c825896f-ac24-4ebf-a5a5-b4daa577b4ca"
      unitRef="usd">50015000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtNS0xLTEtMA_e6a48a6c-7c6b-4bbc-81ec-40e6ee16819d"
      unitRef="usd">19733000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8xNi9mcmFnOjE2MGQzZjBkMzYxMTRmMDhhOTZmNTY3YWY4Y2U3MzQ3L3RhYmxlOjU3Mjc2NGU2N2UzZDQ2OThiMTJjMzZkYmYzYzcyYmZiL3RhYmxlcmFuZ2U6NTcyNzY0ZTY3ZTNkNDY5OGIxMmMzNmRiZjNjNzJiZmJfMjEtNy0xLTEtMA_6d988083-9100-4d02-a920-1a1955dcb10c"
      unitRef="usd">85548000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNC0xLTEtMS0w_c0705869-c397-4a2a-bc5e-7d756d171436"
      unitRef="usd">286021000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNC0zLTEtMS0w_b3431938-0a07-4109-870d-ceeed77dcecb"
      unitRef="usd">171431000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNS0xLTEtMS0w_41b5826e-b733-42f9-b2cf-155b2717ce2d"
      unitRef="usd">143084000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNS0zLTEtMS0w_5f1fd185-4492-4f96-a3ab-e1be29809c8f"
      unitRef="usd">240470000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNi0xLTEtMS0w_e9186495-06bb-44ca-bd9e-5d87449c5b99"
      unitRef="usd">111671000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNi0zLTEtMS0w_fa566fad-2d9f-4fd7-ad42-043532cecf27"
      unitRef="usd">103447000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNy0xLTEtMS0w_d45776b3-66e2-4b7e-a324-ecb3683584d3"
      unitRef="usd">978000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNy0zLTEtMS0w_d885792a-9d52-4357-b575-f6d10e066f0f"
      unitRef="usd">4782000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:InventoryNet
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOC0xLTEtMS0w_c7ef4426-10ab-4ae6-8468-8401ebde6861"
      unitRef="usd">52953000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOC0zLTEtMS0w_cebd7b10-4f50-4f4b-9436-89e1b7b54e12"
      unitRef="usd">60261000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOS0xLTEtMS0w_c36f888c-b550-4cf2-81ca-408550409a98"
      unitRef="usd">51768000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfOS0zLTEtMS0w_89681a30-dd3d-4d80-aec9-0c1eb5f48f7d"
      unitRef="usd">26840000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTAtMS0xLTEtMA_d02c04a3-7d1f-49d5-918c-7c95025f080f"
      unitRef="usd">646475000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTAtMy0xLTEtMA_a1720b38-0a62-41ed-9202-4477201f7f1c"
      unitRef="usd">607231000</us-gaap:AssetsCurrent>
    <us-gaap:LongTermInvestments
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTEtMS0xLTEtMA_c461fbe9-7917-47aa-950d-053b7ebb9296"
      unitRef="usd">467087000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTEtMy0xLTEtMA_66e09396-0191-403e-8499-8c3b6cf6f57b"
      unitRef="usd">433452000</us-gaap:LongTermInvestments>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTItMS0xLTEtMA_7fec8fb4-1a48-4b0b-95fd-eb399a1036f0"
      unitRef="usd">83936000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTItMy0xLTEtMA_19ebf797-f325-48fd-8ba5-98fb831cdb8f"
      unitRef="usd">89443000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTMtMS0xLTEtMA_f59c1f98-2602-4b21-8be6-63bdef403098"
      unitRef="usd">25819000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTMtMy0xLTEtMA_913795c0-ee66-4d7d-b297-33b9ed79cfaa"
      unitRef="usd">17522000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTQtMS0xLTEtMA_048ad979-611e-4005-ae67-c501659717eb"
      unitRef="usd">242436000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTQtMy0xLTEtMA_29f9fa28-bb3f-41d6-8eef-6d6693661cd7"
      unitRef="usd">243445000</us-gaap:Goodwill>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTUtMS0xLTEtMA_15abd765-2c36-4cfe-9666-f3d91386ed93"
      unitRef="usd">17337000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTUtMy0xLTEtMA_d228d672-a819-495e-8e4e-a6bc6749fd89"
      unitRef="usd">39490000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTYtMS0xLTEtMA_d17e0ec3-3550-4224-a2a3-4e27d587f7a0"
      unitRef="usd">443732000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTYtMy0xLTEtMA_d1f76fc5-4d7f-40fe-9315-372791588875"
      unitRef="usd">449519000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTctMS0xLTEtMA_eaef90ed-5ed9-458a-9121-20097cd4b38a"
      unitRef="usd">8042000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTctMy0xLTEtMA_e7dfd43f-1d9a-436f-ad6a-39aac6c39893"
      unitRef="usd">5833000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTgtMS0xLTEtMA_a64b31e0-0997-4574-a6a0-c663ae0be0b5"
      unitRef="usd">1934864000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMTgtMy0xLTEtMA_4a67851f-9df2-4a93-a4ea-31e9f62169d1"
      unitRef="usd">1885935000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjItMS0xLTEtMA_5cb65ed1-1a83-456b-9431-f18485e6b546"
      unitRef="usd">17999000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjItMy0xLTEtMA_b65cfa38-7c21-4826-b0a2-07cce7e69db4"
      unitRef="usd">17866000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjMtMS0xLTEtMA_271ba4de-a52c-47a1-9f7a-9dc9d2a4a433"
      unitRef="usd">66264000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjMtMy0xLTEtMA_4b21704a-1864-4515-9998-e6f37002f7fa"
      unitRef="usd">52199000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjQtMS0xLTEtMA_ac025a58-d397-4aee-bb18-406cd67f6c77"
      unitRef="usd">5952000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjQtMy0xLTEtMA_152372c9-1e5f-4b1b-ba55-4a8fb43ef302"
      unitRef="usd">30333000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjUtMS0xLTEtMA_2e1546f6-4a47-4742-85bd-9f4079e530d9"
      unitRef="usd">46738000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjUtMy0xLTEtMA_5e961ca6-3ce4-4536-88a6-342ed5c2eca0"
      unitRef="usd">14432000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjYtMS0xLTEtMA_7a5c7c4e-9adc-48c5-909c-842ac00a293e"
      unitRef="usd">7628000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjYtMy0xLTEtMA_f1aebf24-7001-4766-9f8d-6d022dad6fd7"
      unitRef="usd">5647000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjctMS0xLTEtMA_c1fbf815-060b-4001-a2ed-53bf2a8bd3d5"
      unitRef="usd">144581000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjctMy0xLTEtMA_81769bae-6d98-474c-b6c2-0263b396c72a"
      unitRef="usd">120477000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjgtMS0xLTEtMA_4ffdc722-80f6-453a-8a2a-5d8adf37150c"
      unitRef="usd">21208000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjgtMy0xLTEtMA_ff58a8a1-8033-40dc-afc0-b00eb120975e"
      unitRef="usd">12326000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjktMS0xLTEtMA_22357cae-ef21-4b29-b0af-9ee17268c805"
      unitRef="usd">326295000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMjktMy0xLTEtMA_be945826-cebc-434c-a9ab-1814596632d0"
      unitRef="usd">332344000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzAtMS0xLTEtMA_5f523b16-ea22-4584-9e3a-dc51e575416e"
      unitRef="usd">12302000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzAtMy0xLTEtMA_5966a81d-3d1a-48b8-8d64-0a7d12510822"
      unitRef="usd">11563000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:AccruedIncomeTaxes
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzEtMS0xLTEtMA_8bf8f20d-84db-4393-9c4d-67c6d872d8e7"
      unitRef="usd">48915000</us-gaap:AccruedIncomeTaxes>
    <us-gaap:AccruedIncomeTaxes
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzEtMy0xLTEtMA_3bc9c2c4-f2cf-4181-9846-63b7fd2f1c8f"
      unitRef="usd">51113000</us-gaap:AccruedIncomeTaxes>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzItMS0xLTEtMA_78f41288-f86d-4226-ae4b-25bca1aaff88"
      unitRef="usd">5085000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzItMy0xLTEtMA_53cb7e45-62dc-4320-8ddd-bb0dc2af71f1"
      unitRef="usd">2402000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzMtMS0xLTEtMA_76f55253-96c5-4f3b-a88b-13f2e9b6edf3"
      unitRef="usd">558386000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzMtMy0xLTEtMA_40bc7e04-e5d3-481d-9cd9-61f59bf5b786"
      unitRef="usd">530225000</us-gaap:Liabilities>
    <us-gaap:PreferredStockValueOutstanding
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzYtMS0xLTEtMA_cc371cb3-da5f-405d-86e2-73261e27f865"
      unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:PreferredStockValueOutstanding
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzYtMy0xLTEtMA_82e7b18f-854b-40ed-a6df-8d5ac155f8b4"
      unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzctMS0xLTEtMA_dc24e707-3e7a-42ba-819d-8d5efd9d117f"
      unitRef="usd">346000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzctMy0xLTEtMA_8d1fd814-7881-4327-880a-e4778740fd59"
      unitRef="usd">345000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzgtMS0xLTEtMA_880d5226-3672-4c28-ba0c-6d642442c34b"
      unitRef="usd">710412000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzgtMy0xLTEtMA_56ca74b4-08bf-4554-8b9f-8a319dbc6991"
      unitRef="usd">639372000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzktMS0xLTEtMA_d11ad71e-dcdf-413b-a390-f487cb3c9461"
      unitRef="usd">702597000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfMzktMy0xLTEtMA_69560710-c64a-4bc4-8110-a55ecb696bc8"
      unitRef="usd">753268000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDAtMS0xLTEtMA_4eb6b5a0-653d-4fa6-98b7-176c5f55074b"
      unitRef="usd">-36877000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDAtMy0xLTEtMA_4c1fd573-97e9-4661-b6ae-51b2be15d575"
      unitRef="usd">-37275000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDEtMS0xLTEtMA_2e3fc57d-2d8f-4280-90e9-0e2ec4c81200"
      unitRef="usd">1376478000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDEtMy0xLTEtMA_0991d4c7-a0c6-481a-bb66-4b6dc56495e6"
      unitRef="usd">1355710000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDItMS0xLTEtMA_04e53b88-ebd5-4a07-86e8-cf4f15df6d3e"
      unitRef="usd">1934864000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yMi9mcmFnOjBkODg0NzNhZTgwOTQxODRhODM1NTEzZjQyYTQ4MGJjL3RhYmxlOjc2NWI1ZmQzZTU2ZDQ3MTNhMGEyMWM1YWI4ZThkNDg4L3RhYmxlcmFuZ2U6NzY1YjVmZDNlNTZkNDcxM2EwYTIxYzVhYjhlOGQ0ODhfNDItMy0xLTEtMA_5e99ca63-7e27-4c50-8d91-baa50b85165b"
      unitRef="usd">1885935000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNC0xLTEtMS0w_b01ece10-f117-4ee8-b65b-03516dc27ac7"
      unitRef="usd">19335000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNC0zLTEtMS0w_bc302122-d762-44c2-a791-2d94c5be598e"
      unitRef="usd">81853000</us-gaap:NetIncomeLoss>
    <us-gaap:StockOptionPlanExpense
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNi0xLTEtMS0w_645ce515-3805-42b8-a343-9bf210970dea"
      unitRef="usd">22808000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNi0zLTEtMS0w_bdb6173e-ab45-41fc-98bc-a399e4b3bc06"
      unitRef="usd">23248000</us-gaap:StockOptionPlanExpense>
    <us-gaap:Depreciation
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNy0xLTEtMS0w_b8a5d1b0-15ef-4fdc-85a7-028e22e57a2a"
      unitRef="usd">11162000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNy0zLTEtMS0w_23e292be-8d59-4b5b-87e6-ae4a90bf159e"
      unitRef="usd">10537000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOC0xLTEtMS0w_f2089975-968a-4631-be82-8a515c46eb72"
      unitRef="usd">2582000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOC0zLTEtMS0w_256d0cb3-c0ac-4dea-b1f7-b9994ce9aa3a"
      unitRef="usd">1538000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0xLTEtMS03NjQ3_9474e9b3-aec2-4451-b838-ff09c10dd0bc"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0zLTEtMS03NzE5_5590a25f-cfb5-437c-a6f4-0ecebb66cd35"
      unitRef="usd">0</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMS0xLTEtNzY0OQ_40e4e753-594b-46ee-8904-94e8fcc5d133"
      unitRef="usd">8783000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMy0xLTEtNzcxNw_efa7e132-74e8-4549-a09a-d726dd52b7a3"
      unitRef="usd">1713000</cgnx:ExcessAndObsoleteInventoryCharges>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMS0xLTEtNzcxNQ_c514f386-0b40-4e2e-ae20-0981b3ae8668"
      unitRef="usd">2534000</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMy0xLTEtNzcyMQ_5c6cf17c-5d9b-4eb4-982d-8ac805b630c2"
      unitRef="usd">0</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0xLTEtMS0w_0892c830-396a-4b94-a5c1-f6ede283b0cb"
      unitRef="usd">-328000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfOS0zLTEtMS0w_c9926f79-4fba-4b1b-b041-12b6fe28428b"
      unitRef="usd">342000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMS0xLTEtMA_d5b41331-e56e-41e3-a65e-fc751edac8e6"
      unitRef="usd">2805000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTAtMy0xLTEtMA_2a74b1bf-1505-474c-97dd-37c18c6d1180"
      unitRef="usd">422000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMS0xLTEtMA_dedfaf81-3b80-4a44-b1a2-c5a5901b328f"
      unitRef="usd">75000</us-gaap:FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery>
    <us-gaap:FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTEtMy0xLTEtMA_2bdf36df-5f97-49aa-bf05-2ca9ba5f33c9"
      unitRef="usd">0</us-gaap:FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTItMS0xLTEtMA_dd37aba0-3ad1-46a1-a14f-85181e2c79d2"
      unitRef="usd">-114000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTItMy0xLTEtMA_380f5587-f7aa-4285-afb1-94b12fd3f74c"
      unitRef="usd">-863000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTMtMS0xLTEtMA_222f7d31-fed7-48bd-bb78-d06b7e3b0259"
      unitRef="usd">-1395000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTMtMy0xLTEtMA_96234e28-b7db-4524-a8a4-bdc35c0b7913"
      unitRef="usd">1311000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTUtMS0xLTEtMA_f0d18236-c673-4e67-b185-6db8fd59546b"
      unitRef="usd">8957000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTUtMy0xLTEtMA_9d943caf-7096-4081-b2bd-e14f6613dec8"
      unitRef="usd">-11383000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTYtMS0xLTEtMA_efb527b5-7da7-4389-b874-440316e1995b"
      unitRef="usd">3804000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTYtMy0xLTEtMA_c7734ae1-62de-4ad4-b231-ba2fdfc13669"
      unitRef="usd">-1989000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTctMS0xLTEtMA_79bcde5d-dbe8-476d-b97d-679406737873"
      unitRef="usd">1664000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTctMy0xLTEtMA_42a193a8-3255-42c2-bd9d-a13a0b5ee2a9"
      unitRef="usd">-8681000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTktMS0xLTEtMA_d73090a9-481c-4582-8aa4-c239bd5dd284"
      unitRef="usd">25461000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMTktMy0xLTEtMA_feedcf59-9a54-4cd6-8b87-8e587a89df0c"
      unitRef="usd">463000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjAtMS0xLTEtMA_63239a84-a546-45ad-a9bb-658acae4ff15"
      unitRef="usd">143000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjAtMy0xLTEtMA_33277ee1-1418-4c94-8f1b-4a49a5e61133"
      unitRef="usd">-4528000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjEtMS0xLTEtMA_4328e2b4-ad66-4ce9-8155-996a830bb84b"
      unitRef="usd">15806000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjEtMy0xLTEtMA_f950b5c2-3e30-4e71-b839-3bcceb3470f3"
      unitRef="usd">-12270000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedTaxesPayable
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjItMS0xLTEtMA_b07cb081-c5bc-4bed-bc8c-2cc5dfdb89c3"
      unitRef="usd">-25411000</us-gaap:IncreaseDecreaseInAccruedTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedTaxesPayable
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjItMy0xLTEtMA_b7be174a-4fc9-4845-8508-843930836262"
      unitRef="usd">-4000000</us-gaap:IncreaseDecreaseInAccruedTaxesPayable>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjMtMS0xLTEtMA_0e5b15d4-276e-496b-8fe6-c72501127b22"
      unitRef="usd">32586000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjMtMy0xLTEtMA_b76736a6-6451-4a2f-84a7-60c21e3f547a"
      unitRef="usd">8575000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjQtMS0xLTEtMA_057cc352-1ec4-4186-8a7f-15586e4d853d"
      unitRef="usd">-2520000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjQtMy0xLTEtMA_6567282e-1b9c-4e6b-8e54-01bf98251a94"
      unitRef="usd">1190000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjUtMS0xLTEtMA_5582ab41-fbe9-46e1-b824-55b9c9faae63"
      unitRef="usd">79020000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjUtMy0xLTEtMA_627c2b5f-a3d6-4eaf-9223-3467b419819a"
      unitRef="usd">120150000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjctMS0xLTEtMA_7df4a9b6-6290-49a8-8cec-048bf03222a4"
      unitRef="usd">317540000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjctMy0xLTEtMA_23bc6469-876a-416c-8980-14dd7bfc30cb"
      unitRef="usd">664896000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjgtMS0xLTEtMA_8efc4d2e-4e15-4355-a025-0566dae03bd3"
      unitRef="usd">387765000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjgtMy0xLTEtMA_6b78d434-d908-449e-a729-5bb5f5bf48a6"
      unitRef="usd">587175000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjktMS0xLTEtMA_6b657fc3-ca82-47cd-8377-65a1531a965b"
      unitRef="usd">6985000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMjktMy0xLTEtMA_9190b5f5-9999-4965-8e22-b90535b23762"
      unitRef="usd">8969000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzMtMS0xLTEtMA_ccae7cb5-ae2a-4eb6-b497-0353f91f508d"
      unitRef="usd">63240000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzMtMy0xLTEtMA_eb5a54ae-ca3b-4dee-9b5b-b619e41c2a69"
      unitRef="usd">-86690000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzUtMS0xLTEtMA_90e5f882-5b66-415b-95a0-4b6f001155f7"
      unitRef="usd">48235000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzUtMy0xLTEtMA_3877a87f-b571-41c6-8b7a-fcd8e4d6f1af"
      unitRef="usd">26417000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzYtMS0xLTEtMA_3b267641-1227-4c6a-adf1-16682d9c03b3"
      unitRef="usd">51036000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzYtMy0xLTEtMA_d4ac7bc8-733f-4b10-89ef-70a5fa78c31a"
      unitRef="usd">61690000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzctMS0xLTEtMA_a1fd876a-7a64-4ee2-97c4-e834a8cdf90a"
      unitRef="usd">18972000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzctMy0xLTEtMA_f15e300d-84df-47de-b4a2-7fd09feb7fe0"
      unitRef="usd">17146000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzgtMS0xLTEtMA_7360f7cf-da67-44b7-b0b2-6b0cc2191c52"
      unitRef="usd">1039000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzgtMy0xLTEtMA_0039bff5-e2d2-426a-96f0-df73023123e3"
      unitRef="usd">0</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzktMS0xLTEtMA_15c4a551-f59e-4374-95b7-caa320675013"
      unitRef="usd">-22812000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfMzktMy0xLTEtMA_27b22414-8a11-4c44-ad80-2a8fd59b627b"
      unitRef="usd">-52419000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDAtMS0xLTEtMA_2049e831-7ca6-4f70-ac48-056aba2ef9ee"
      unitRef="usd">-4858000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDAtMy0xLTEtMA_3e338f7b-26e2-494c-b51c-5f663e7ff7fb"
      unitRef="usd">-149000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDEtMS0xLTEtMA_29eeb03d-208d-45c4-9019-af208e0622c2"
      unitRef="usd">114590000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDEtMy0xLTEtMA_5d26c9ba-7710-48b6-9be5-df82e85b9eae"
      unitRef="usd">-19108000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDItMS0xLTEtMA_bb97c2f6-0806-4604-b5d1-d87169d426ae"
      unitRef="usd">171431000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i0b0706b68e684f83aa546dd2533ce44b_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDItMy0xLTEtMA_1e78da8a-8ba4-4372-930a-b7a50b14c8cc"
      unitRef="usd">108212000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDMtMS0xLTEtMA_00fdf7a0-7801-412a-bc56-fb48c508baae"
      unitRef="usd">286021000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8yOC9mcmFnOjgwNjQ0NTg0OGFiZTRmYjBiYzVlYzlmNTU0MDE0MWMyL3RhYmxlOjdjNjE4ZDE2YmIwMzQ3YzY5NTg2YjA0NDMyYWVkYTA3L3RhYmxlcmFuZ2U6N2M2MThkMTZiYjAzNDdjNjk1ODZiMDQ0MzJhZWRhMDdfNDMtMy0xLTEtMA_37214259-52d3-4d12-8750-5496aa07385d"
      unitRef="usd">89104000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CommonStockSharesIssued
      contextRef="i9003d025fdf74baf9cfde117be3e31e3_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi0xLTEtMS0w_de8df119-50ff-4664-b3b3-02d6d78c2df8"
      unitRef="shares">171688000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i9003d025fdf74baf9cfde117be3e31e3_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi0zLTEtMS0w_ca16d75d-cee3-4316-8612-60d10c7ab214"
      unitRef="usd">344000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6d3d9cdf100e49429e0096f15c8f51c8_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi01LTEtMS0w_c8fcdef7-e0f0-4544-8160-7d0a2f951e07"
      unitRef="usd">664132000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i938a629326a0439aa43ad35cdac85063_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi03LTEtMS0w_a40f0406-47cf-4505-8045-f427287ecf14"
      unitRef="usd">713208000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i1e9f2b6e17ba467f9e0e9d684bbde89e_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi05LTEtMS0w_0d36a1f3-cc48-441a-9240-7cf4377ebbb1"
      unitRef="usd">-50191000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id8519e56581148ae8b301b041e6ee876_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMi0xMS0xLTEtMA_400e7a67-9465-48e3-9b4d-043fb4bacf19"
      unitRef="usd">1327493000</us-gaap:StockholdersEquity>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy0xLTEtMS0w_37f4079d-ad2a-4508-9663-30bdfef93807"
      unitRef="shares">1359000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy0zLTEtMS0w_e21935ed-1c0e-4071-8c4b-18ebdb6a6fb7"
      unitRef="usd">2000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i8a9e1ef6774044ef9190aafe3633273c_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy01LTEtMS0w_9d4addaa-0edd-4681-b432-0b3c3866c381"
      unitRef="usd">38262000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMy0xMS0xLTEtMA_a743c971-91a3-4d47-8676-5cb51937bc1d"
      unitRef="usd">38264000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC0xLTEtMS0w_c1e327f6-dea6-46ab-923a-1c29d767acd1"
      unitRef="shares">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="icbedc57393094b02a041bf5f78b3a13e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC0zLTEtMS0w_eeabed37-0453-490a-977a-d0c5027947b3"
      unitRef="usd">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC03LTEtMS0w_14bf0516-1403-4b13-b77d-29a49f64c049"
      unitRef="usd">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNC0xMS0xLTEtMA_56d6452e-ba27-4ac9-ba57-d4c5f4a3269f"
      unitRef="usd">0</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i8a9e1ef6774044ef9190aafe3633273c_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNS01LTEtMS0w_a4284f19-7736-4cf2-bcbc-7f9e540e4931"
      unitRef="usd">8018000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNS0xMS0xLTEtMA_734db27f-d6d6-487f-9f54-2a9e21338f11"
      unitRef="usd">8018000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCash
      contextRef="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNi03LTEtMS0w_092a1b4a-a147-41ac-96f4-5f3a34ab1c44"
      unitRef="usd">9469000</us-gaap:DividendsCash>
    <us-gaap:DividendsCash
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfNi0xMS0xLTEtMA_9ff8f1c0-80c0-4726-8857-fb850af1a846"
      unitRef="usd">9469000</us-gaap:DividendsCash>
    <us-gaap:NetIncomeLoss
      contextRef="iaeeb4380b20645b6a77f4936cf288872_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfOC03LTEtMS0w_3a61b284-5867-4521-ac11-a902a0e1b7c4"
      unitRef="usd">-1142000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfOC0xMS0xLTEtMA_721d8b07-8cc9-4835-956f-4b448a46e4c7"
      unitRef="usd">-1142000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTEtOS0xLTEtMA_60f31e0c-b865-4643-b12c-b5730a528993"
      unitRef="usd">12451000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTEtMTEtMS0xLTA_20453335-9fbd-465f-8ab6-5b0571a0f739"
      unitRef="usd">12451000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTItOS0xLTEtMA_c8b9f4ab-d59f-4abf-a3f8-f8e91cfea53c"
      unitRef="usd">85000</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTItMTEtMS0xLTA_bd9b6e14-4d27-4489-8353-9cce85b5378e"
      unitRef="usd">85000</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTMtOS0xLTEtMA_708ce4a4-470c-4f94-abae-be42e0ef0f25"
      unitRef="usd">955000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTMtMTEtMS0xLTA_1134db1a-209c-4e50-8e68-fd13839429e3"
      unitRef="usd">955000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i811b015caf9744899cc03d3b01ed9cb6_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTQtOS0xLTEtMA_d1f3c7fd-9d5e-4367-ae97-1bd78a96622e"
      unitRef="usd">1903000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTQtMTEtMS0xLTA_2d489661-a47a-4670-bf79-ca58df10759b"
      unitRef="usd">1903000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtMS0xLTEtMA_ab76d46c-98b8-4904-a526-1b66a8f9e66e"
      unitRef="shares">173047000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtMy0xLTEtMA_cec0a6e1-efe3-42bb-bd21-22bdd4d468b2"
      unitRef="usd">346000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="icb2e5217f55f406289b5cabb8359f389_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtNS0xLTEtMA_a6794602-a3dd-41c2-b2b9-671bbf2082b5"
      unitRef="usd">710412000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic26f54781e5c4a8886eddc97b739c7f5_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtNy0xLTEtMA_46a0dcdd-5b16-4d1a-9099-95a2c5ba0613"
      unitRef="usd">702597000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i96d78535cce74acdbf73cf711e8d9464_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtOS0xLTEtMA_88f281d6-5180-45a4-aeb8-cdd2c0b4fb0f"
      unitRef="usd">-36877000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjg3M2JmYTIyM2MwNDQwNTA5NDZmYWQ2NmFmMjAyNWFmL3RhYmxlcmFuZ2U6ODczYmZhMjIzYzA0NDA1MDk0NmZhZDY2YWYyMDI1YWZfMTUtMTEtMS0xLTA_e8b97798-656f-4b35-adf0-3e0c1cf4017f"
      unitRef="usd">1376478000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesIssued
      contextRef="iaec1d0005f3841edaa0f1a67e2658cbe_I20190331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi0xLTEtMS0w_f9200f7f-84da-4a32-863c-6f11d84cf3e9"
      unitRef="shares">171537000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="iaec1d0005f3841edaa0f1a67e2658cbe_I20190331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi0zLTEtMS0w_90318ec4-3866-471c-a476-75359619172d"
      unitRef="usd">343000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if439bca2e85b44968f4a4ab1683fd0e1_I20190331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi01LTEtMS0w_6179c174-81fe-4e8f-bbdc-021849598e6e"
      unitRef="usd">555834000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib57c714e8813465ab9a6f10dbad1be98_I20190331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi03LTEtMS0w_0e60edc7-16bf-40f2-8cfd-9b917a124ece"
      unitRef="usd">670754000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i34398295dff14da1a866d30e00f8aa89_I20190331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi05LTEtMS0w_f8d156c5-f935-418d-9567-2b7354acf20e"
      unitRef="usd">-38072000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib3897b228f05439eb381f0e036a97929_I20190331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMi0xMS0xLTEtMA_90eba445-34d8-4550-ba36-166e506a5ece"
      unitRef="usd">1188859000</us-gaap:StockholdersEquity>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy0xLTEtMS0w_fe85bb00-ff8c-4aab-8b97-61111645097f"
      unitRef="shares">522000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy0zLTEtMS0w_1006ad01-12f7-414a-9a2c-b844926a94c2"
      unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="id1958ec4cb8f46429d60ecb4713343a3_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy01LTEtMS0w_cf32117d-31f2-4a6d-8225-c4671b4a7e22"
      unitRef="usd">12070000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMy0xMS0xLTEtMA_0b198933-c805-406c-9238-5f450a39f793"
      unitRef="usd">12071000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC0xLTEtMS0w_9eba6b10-0925-44f0-8029-b2dda442b378"
      unitRef="shares">1398000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i16154c4ec537470991d6ae6e24210e3d_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC0zLTEtMS0w_710f56d2-a249-4aa4-9914-045b27781933"
      unitRef="usd">3000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC03LTEtMS0w_bc3135b5-5673-4a3c-b606-10d6b7cfb5ac"
      unitRef="usd">61687000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNC0xMS0xLTEtMA_e430bbf4-385e-4da3-9a1c-aa03bfa3302c"
      unitRef="usd">61690000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="id1958ec4cb8f46429d60ecb4713343a3_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNS01LTEtMS0w_30e126be-8c08-4748-8dd4-802f16471928"
      unitRef="usd">10967000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNS0xMS0xLTEtMA_e96c4524-a721-4ca0-a9cf-8502d94cabe0"
      unitRef="usd">10967000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCash
      contextRef="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNi03LTEtMS0w_a994146b-e62c-4df3-92c7-7e1d8eccb222"
      unitRef="usd">8582000</us-gaap:DividendsCash>
    <us-gaap:DividendsCash
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfNi0xMS0xLTEtMA_9a9dd7d8-d0e7-474e-8f87-2aaa954f7add"
      unitRef="usd">8582000</us-gaap:DividendsCash>
    <us-gaap:NetIncomeLoss
      contextRef="i008f99c491e1463ca28d50ea3d0d8a19_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOC03LTEtMS0w_447428f1-ebd3-4f65-8289-120dd8654c2a"
      unitRef="usd">48749000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOC0xMS0xLTEtMA_d7e577bb-0a54-4707-8842-7881c632f05f"
      unitRef="usd">48749000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOS05LTEtMS0w_6da9f603-8c12-4b09-a247-9d2b606f6b2b"
      unitRef="usd">2311000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfOS0xMS0xLTEtMA_53a46523-c92e-4435-86ab-54e5239ab66f"
      unitRef="usd">2311000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTAtOS0xLTEtMA_4fe24d23-63e9-44b8-a71d-65cdd80f98c3"
      unitRef="usd">382000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTAtMTEtMS0xLTA_85d68ed9-e78a-4c14-b1b4-0e3cbdcebafb"
      unitRef="usd">382000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i05c1590a517d4588bbd0e166bc43e89b_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTEtOS0xLTEtMA_cbf1bf9d-fd7f-4586-9ad4-ea76843b1891"
      unitRef="usd">-663000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTEtMTEtMS0xLTA_d0087262-4a73-4242-a019-07778e6b8b15"
      unitRef="usd">-663000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItMS0xLTEtMA_e5811a8f-b7d3-40c2-850e-55385ee5e5ef"
      unitRef="shares">170661000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItMy0xLTEtMA_829a7453-a3e3-465a-8f3e-cfbf75cfb1ed"
      unitRef="usd">341000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic051ab77728e40908d6b485f1b354a8f_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItNS0xLTEtMA_a7314ef8-3e96-4915-b3dd-dd13ce463429"
      unitRef="usd">578871000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i804ab526c89e443f8b3dcaf6af2de12e_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItNy0xLTEtMA_254ca0c4-855d-4e19-8a83-380755dc88bd"
      unitRef="usd">649234000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0445be96163342e5b1962b12962e92f4_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItOS0xLTEtMA_be085c71-4b04-407d-80b0-a2a15c1fb6cc"
      unitRef="usd">-36806000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmFkNDBkODIyNmI2ZjQzYzQ5MzdiYTA2N2VkZTFlMWUyL3RhYmxlcmFuZ2U6YWQ0MGQ4MjI2YjZmNDNjNDkzN2JhMDY3ZWRlMWUxZTJfMTItMTEtMS0xLTA_e5ec14ce-db7a-4e00-9f31-b91ca2aced42"
      unitRef="usd">1191640000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesIssued
      contextRef="i5df802dd93044ae49cb3336212205376_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi0xLTEtMS01NTQx_794f1117-9733-4845-bfc3-11f7ca95f2d8"
      unitRef="shares">172440000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i5df802dd93044ae49cb3336212205376_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi0zLTEtMS01NTQx_f8367cbb-96f5-4833-96ed-d3ec99ec3c3e"
      unitRef="usd">345000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ibe498205c18947f0bef7f72145695991_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi01LTEtMS01NTQx_e5a595e6-49a7-4c70-ac55-b707beb29a84"
      unitRef="usd">639372000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia04ef572494a469e85e6da42fb4c2e6f_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi03LTEtMS01NTQx_0734480e-819f-41d4-b961-bde3492a371f"
      unitRef="usd">753268000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i496c881206324a98a7057d07953934fb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi05LTEtMS01NTQx_0c8d89c1-bf0b-4dc2-8073-10dd1c1f69a5"
      unitRef="usd">-37275000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMi0xMS0xLTEtNTU0MQ_bcefc33a-6189-4d2a-b739-b5ff7ea50742"
      unitRef="usd">1355710000</us-gaap:StockholdersEquity>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy0xLTEtMS01NTQx_427a06fc-419a-44e6-914f-c2eac7120324"
      unitRef="shares">1822000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy0zLTEtMS01NTQx_c6f4bf84-99d4-4f10-ad78-a4e182f3a59a"
      unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ic6f5006b10c5487f9c1175c4680b9707_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy01LTEtMS01NTQx_08b03cec-04a4-47e3-948e-491de722236d"
      unitRef="usd">48232000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMy0xMS0xLTEtNTU0MQ_855e29a9-54b3-4b39-990f-37a421b203ef"
      unitRef="usd">48235000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC0xLTEtMS01NTQx_df9ef8a5-fb02-4ea7-b347-a3ce140870b4"
      unitRef="shares">1215000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i67c2e6cbcd374a7280d4dd8dc5824c38_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC0zLTEtMS01NTQx_7614275a-bf9b-403e-836c-1666a213ad6c"
      unitRef="usd">2000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i1c643112133f451baa01d848b56a13f0_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC03LTEtMS01NTQx_a49411c3-1f93-48a8-98be-d58edd4819f2"
      unitRef="usd">51034000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNC0xMS0xLTEtNTU0MQ_345a17d5-8729-4a05-9c0f-f5775cd66447"
      unitRef="usd">51036000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ic6f5006b10c5487f9c1175c4680b9707_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNS01LTEtMS01NTQx_aeb395ff-3b23-46a7-ab41-6002b096d4f2"
      unitRef="usd">22808000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNS0xMS0xLTEtNTU0MQ_5a1620f9-e7db-4028-b86b-adfb89014803"
      unitRef="usd">22808000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCash
      contextRef="i1c643112133f451baa01d848b56a13f0_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNi03LTEtMS01NTQx_8f4ed0af-759f-4317-ad20-64c479088be4"
      unitRef="usd">18972000</us-gaap:DividendsCash>
    <us-gaap:DividendsCash
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfNi0xMS0xLTEtNTU0MQ_d347ea89-6d79-490b-8ce4-c48310e55ba2"
      unitRef="usd">18972000</us-gaap:DividendsCash>
    <us-gaap:NetIncomeLoss
      contextRef="i1c643112133f451baa01d848b56a13f0_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfOC03LTEtMS01NTQx_83c97fd3-3721-4395-b5e3-2aa0a44ed6dd"
      unitRef="usd">19335000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfOC0xMS0xLTEtNTU0MQ_af236695-4e94-4bba-831e-225664cf5185"
      unitRef="usd">19335000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTEtOS0xLTEtNTU0MQ_1cb6b6c1-7afd-4d0e-a0e4-b0fbf097af7e"
      unitRef="usd">8590000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTEtMTEtMS0xLTU1NDE_bf785c67-de77-49ab-a5c0-399c18651160"
      unitRef="usd">8590000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTItOS0xLTEtNTU0MQ_360d5441-9e13-4481-b6ed-968f61140e5d"
      unitRef="usd">-75000</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTItMTEtMS0xLTU1NDE_443f3531-989b-4726-9e86-690cd404dc0c"
      unitRef="usd">-75000</us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTMtOS0xLTEtNTU0MQ_2f211fbf-ad66-4554-96ae-0ab4953e0275"
      unitRef="usd">2805000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTMtMTEtMS0xLTU1NDE_4fd15e7b-fbd8-48a6-bac3-5cdfdc2d0086"
      unitRef="usd">2805000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i169fdf981c71430a91f0ce5387d292fd_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTQtOS0xLTEtNTU0MQ_a533a570-c7cc-494b-95cb-d175b9df39a5"
      unitRef="usd">-5462000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTQtMTEtMS0xLTU1NDE_aa61a113-a077-4cfd-891e-4d50c47038f4"
      unitRef="usd">-5462000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtMS0xLTEtNTU0MQ_96b577ba-269b-4963-b576-c91db2aa7876"
      unitRef="shares">173047000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i4d292a0e3d51452b98af45d0003e89eb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtMy0xLTEtNTU0MQ_c785b579-dbf1-4eb6-a808-856893d10970"
      unitRef="usd">346000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="icb2e5217f55f406289b5cabb8359f389_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtNS0xLTEtNTU0MQ_fdcb703f-f2f4-409e-88a9-1a05138a1d4b"
      unitRef="usd">710412000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic26f54781e5c4a8886eddc97b739c7f5_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtNy0xLTEtNTU0MQ_5d62860d-7857-447d-bad5-32891eb9725e"
      unitRef="usd">702597000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i96d78535cce74acdbf73cf711e8d9464_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtOS0xLTEtNTU0MQ_e47bd206-ce65-4709-8082-15391bf7743a"
      unitRef="usd">-36877000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOmZjOWJlYzQxNzRlZTQxZTNiYmIyNmIxZDg5Mzg1N2Y4L3RhYmxlcmFuZ2U6ZmM5YmVjNDE3NGVlNDFlM2JiYjI2YjFkODkzODU3ZjhfMTUtMTEtMS0xLTU1NDE_b370f151-75f5-40d2-ac12-ac25a1b211b5"
      unitRef="usd">1376478000</us-gaap:StockholdersEquity>
    <us-gaap:CommonStockSharesIssued
      contextRef="ib8d6fc9c105641509da02b1704c72686_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi0xLTEtMS01NTQz_285596d3-bcea-49d5-912d-c8f3b655a33d"
      unitRef="shares">170820000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="ib8d6fc9c105641509da02b1704c72686_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi0zLTEtMS01NTQz_ae7cee9c-804d-4499-b0fe-e704a822df58"
      unitRef="usd">342000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2c1b1a2a383241c8bb09a8280fc8a19d_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi01LTEtMS01NTQz_967e404e-75d6-479d-b547-dc62517a1060"
      unitRef="usd">529208000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib67475f7ae274115ba9d67504c6d47b1_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi03LTEtMS01NTQz_1764b2e9-3a32-4539-84cd-56e9f6ad806a"
      unitRef="usd">646214000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic300f4175ae543be884f97db607cbd6b_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi05LTEtMS01NTQz_5f22495b-838f-4826-8522-7f12ea1347dd"
      unitRef="usd">-40501000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0b0706b68e684f83aa546dd2533ce44b_I20181231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMi0xMS0xLTEtNTU0Mw_8b83b245-7e2d-4625-95d9-497474225e61"
      unitRef="usd">1135263000</us-gaap:StockholdersEquity>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy0xLTEtMS01NTQz_d675d8c4-f679-4ef4-a06a-aaef36d96327"
      unitRef="shares">1239000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy0zLTEtMS01NTQz_5d71d427-bb6d-43d9-ab33-07a6377bf9e4"
      unitRef="usd">2000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i4dd591ad2c334f38a05a749f22572a52_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy01LTEtMS01NTQz_6cf0c336-c181-4354-8bd4-622f25a2f2ed"
      unitRef="usd">26415000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMy0xMS0xLTEtNTU0Mw_4ddb0fb3-3e88-4aba-bd40-ef1171b2f587"
      unitRef="usd">26417000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC0xLTEtMS03NjU4_4764ad83-d014-4469-b64f-61c90a474b88"
      unitRef="shares">1398000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i3dee4253cc1940ee98c8e85f689afc88_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC0zLTEtMS03NjU4_3618a008-426f-4900-bbd6-bb2a0e84aad6"
      unitRef="usd">3000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC03LTEtMS03NjU4_91645096-35a4-4f27-9ee3-df099a6b26c9"
      unitRef="usd">61687000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNC0xMS0xLTEtNzY1OA_c4dc3241-9d4a-4f5c-bbd9-8291d1ba16e0"
      unitRef="usd">61690000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i4dd591ad2c334f38a05a749f22572a52_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNS01LTEtMS01NTQz_f6d759a7-53ec-4108-8ba9-5f56fbe6c3e1"
      unitRef="usd">23248000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNS0xMS0xLTEtNTU0Mw_955daa14-d358-4ef1-ab5b-ce3d0c8e20db"
      unitRef="usd">23248000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCash
      contextRef="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNi03LTEtMS01NTQz_55a4c4d8-c88d-451d-95c2-beecacd2c15a"
      unitRef="usd">17146000</us-gaap:DividendsCash>
    <us-gaap:DividendsCash
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfNi0xMS0xLTEtNTU0Mw_38d457aa-bc9b-447c-8d48-bd2cd906d130"
      unitRef="usd">17146000</us-gaap:DividendsCash>
    <us-gaap:NetIncomeLoss
      contextRef="i954bfa3c4ad44727b2d3ee2dfa39e68b_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfOC03LTEtMS01NTQz_203ed3f5-740c-4a4e-a949-1386a854cc80"
      unitRef="usd">81853000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfOC0xMS0xLTEtNTU0Mw_e70693de-47dc-4070-b2e2-57cd71156929"
      unitRef="usd">81853000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTEtOS0xLTEtNTU0Mw_8302dde7-d61f-4b1d-841e-7ac884ebe9ad"
      unitRef="usd">4562000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTEtMTEtMS0xLTU1NDM_3f576655-3f43-4aaf-83c7-58bd887f6241"
      unitRef="usd">4562000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTMtOS0xLTEtNTU0Mw_d2d67ce6-771f-4b24-b783-e8e5df36df31"
      unitRef="usd">422000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTMtMTEtMS0xLTU1NDM_db542c42-c40e-406c-9239-6f80bc6e66b7"
      unitRef="usd">422000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ibe96185e3a8a45ebb61920a1f188648e_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTQtOS0xLTEtNTU0Mw_719538a1-595f-4652-8ca2-f3aaf6f004db"
      unitRef="usd">-445000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTQtMTEtMS0xLTU1NDM_58dd8416-59f1-4e46-9b08-cca890ad0188"
      unitRef="usd">-445000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtMS0xLTEtNTU0Mw_a4924529-5bda-4511-a422-895e9f871af6"
      unitRef="shares">170661000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i8d3762ebf70c4369bd183f8898d6e4cb_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtMy0xLTEtNTU0Mw_25a001c9-f1e4-45bd-b656-a5f8f8136ddb"
      unitRef="usd">341000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic051ab77728e40908d6b485f1b354a8f_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtNS0xLTEtNTU0Mw_ddc7714a-3b26-4401-9179-e941a194b802"
      unitRef="usd">578871000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i804ab526c89e443f8b3dcaf6af2de12e_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtNy0xLTEtNTU0Mw_8ef588d0-6608-4bd5-907f-e052fcecb692"
      unitRef="usd">649234000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0445be96163342e5b1962b12962e92f4_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtOS0xLTEtNTU0Mw_bef64a02-29e4-4fb4-847e-22b47ca02f28"
      unitRef="usd">-36806000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl8zMS9mcmFnOmNkZmY3YWI3N2VmZDQ3ZGQ5NWZkZDNhYjZkOWU0Y2ZlL3RhYmxlOjM4MDViNGM1N2FmMzQ5NGVhYTBmNDgwNGMwNGYwOTE1L3RhYmxlcmFuZ2U6MzgwNWI0YzU3YWYzNDk0ZWFhMGY0ODA0YzA0ZjA5MTVfMTUtMTEtMS0xLTU1NDM_8a118e0d-5c37-40d7-9d90-0d2e4d2dcfcc"
      unitRef="usd">1191640000</us-gaap:StockholdersEquity>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80MC9mcmFnOjA0ZjFkOThlZDFjZjRiYmNhNjU2Yzg4NDg3M2Y3NDRhL3RleHRyZWdpb246MDRmMWQ5OGVkMWNmNGJiY2E2NTZjODg0ODczZjc0NGFfNjYzNg_5d2fd2c1-cf9b-457f-a61b-43eea29049f8">Summary of Significant Accounting Policies&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;As permitted by the rules of the Securities and Exchange Commission applicable to Quarterly Reports on Form                      10-Q, these notes are condensed and do not contain all disclosures required by generally accepted accounting principles (GAAP).  As a result of the adoption of ASU 2016-13 "Measurement of Credit Losses on Financial Instruments," Cognex Corporation (the "Company") has provided new disclosures related to credit losses in this Quarterly Report on Form 10-Q.  Reference should be made to the consolidated financial statements and related notes included in the Company&#x2019;s Annual Report on Form 10-K for the year ended December&#160;31, 2019 for a full description of other significant accounting policies.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;In the opinion of the management of the Company, the accompanying consolidated unaudited financial statements contain all adjustments, consisting of normal, recurring adjustments, excess and obsolete inventory charges (Note 5), intangible asset impairment charges (Note 8), restructuring charges (Note 16), and financial statement reclassifications necessary to present fairly the Company&#x2019;s financial position as of June&#160;28, 2020, and the results of its operations for the three-month and six-month periods ended June&#160;28, 2020 and June&#160;30, 2019, and changes in shareholders&#x2019; equity, comprehensive income, and cash flows for the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The results disclosed in the Consolidated Statements of Operations for the three-month and six-month periods ended June&#160;28, 2020 are not necessarily indicative of the results to be expected for the full year.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Money market instruments, as well as certificates of deposit and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and 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.  It is the Company&#x2019;s policy to invest in debt securities with effective maturities that do not exceed ten years.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 and credit losses, recorded in shareholders&#x2019; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#x2019;s limited partnership interest is accounted for using the cost method because the Company&#x2019;s investment is less than 5% of the partnership and the Company has no influence over the partnership&#x2019;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether a credit loss or other type of impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the decline has resulted from a credit loss or other factors.  In assessing whether a credit loss exists, the Company compares the present value of the cash flows expected to be collected from the security with the amortized cost basis of the security.  If the present value of the cash flows expected to be collected is less than the amortized cost basis of the security, then a credit loss exists and an allowance for credit losses is recorded.  The allowance for credit losses is limited by the amount that the fair value is less than the amortized cost basis of the security.  Credit losses on impaired securities continue to be measured in subsequent periods, using the present value of expected future cash flows, and changes in the expected credit losses are recorded in current operations.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statement of Operations.  When developing an estimate of the expected credit losses, the Company considers all available information relevant to assessing the collectability of cash flows. This information includes internal and external factors, historical and current events, reasonable and supportable forecasts including management's expectations of future economic conditions, the type of security, the credit rating of the security, the size of the loss position, as well as other relevant information. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;An impairment is recognized as a write-down if (i)&#160;the Company has the intent to sell the security or (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis.  If impairment is considered upon condition (i)&#160;or (ii)&#160;described above, the debt security's amortized cost basis is written-down to its fair value and the impairment is recognized in current operations. Subsequent increases in the fair value of the debt securities after the write-down are included in shareholders' equity as other comprehensive income. The differences between the new amortized cost basis and the cash flows expected to be collected are accreted as interest income. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Unrealized losses, that have not been recorded through an allowance for credit losses or write-down of the debt security, are recorded in shareholders' equity as other comprehensive loss, net of the applicable taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 upon 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 potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, general economic and industry conditions, and reasonable forecasts about the future, 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 reversal of the bad debt expense.  Credit losses are included in "Selling, general, and administrative expenses" on the Consolidated Statement of Operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80MC9mcmFnOjA0ZjFkOThlZDFjZjRiYmNhNjU2Yzg4NDg3M2Y3NDRhL3RleHRyZWdpb246MDRmMWQ5OGVkMWNmNGJiY2E2NTZjODg0ODczZjc0NGFfNjYyOQ_2dc135f1-aafe-4165-8427-12e8e136d939">&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Money market instruments, as well as certificates of deposit and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and 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.  It is the Company&#x2019;s policy to invest in debt securities with effective maturities that do not exceed ten years.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 and credit losses, recorded in shareholders&#x2019; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#x2019;s limited partnership interest is accounted for using the cost method because the Company&#x2019;s investment is less than 5% of the partnership and the Company has no influence over the partnership&#x2019;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether a credit loss or other type of impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the decline has resulted from a credit loss or other factors.  In assessing whether a credit loss exists, the Company compares the present value of the cash flows expected to be collected from the security with the amortized cost basis of the security.  If the present value of the cash flows expected to be collected is less than the amortized cost basis of the security, then a credit loss exists and an allowance for credit losses is recorded.  The allowance for credit losses is limited by the amount that the fair value is less than the amortized cost basis of the security.  Credit losses on impaired securities continue to be measured in subsequent periods, using the present value of expected future cash flows, and changes in the expected credit losses are recorded in current operations.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statement of Operations.  When developing an estimate of the expected credit losses, the Company considers all available information relevant to assessing the collectability of cash flows. This information includes internal and external factors, historical and current events, reasonable and supportable forecasts including management's expectations of future economic conditions, the type of security, the credit rating of the security, the size of the loss position, as well as other relevant information. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;An impairment is recognized as a write-down if (i)&#160;the Company has the intent to sell the security or (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis.  If impairment is considered upon condition (i)&#160;or (ii)&#160;described above, the debt security's amortized cost basis is written-down to its fair value and the impairment is recognized in current operations. Subsequent increases in the fair value of the debt securities after the write-down are included in shareholders' equity as other comprehensive income. The differences between the new amortized cost basis and the cash flows expected to be collected are accreted as interest income. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Unrealized losses, that have not been recorded through an allowance for credit losses or write-down of the debt security, are recorded in shareholders' equity as other comprehensive loss, net of the applicable taxes.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ReceivablesPolicyTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80MC9mcmFnOjA0ZjFkOThlZDFjZjRiYmNhNjU2Yzg4NDg3M2Y3NDRhL3RleHRyZWdpb246MDRmMWQ5OGVkMWNmNGJiY2E2NTZjODg0ODczZjc0NGFfNjY0MQ_5576df2b-e20b-46d1-b919-bd436e21e3ed">&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 upon 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 potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, general economic and industry conditions, and reasonable forecasts about the future, 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 reversal of the bad debt expense.  Credit losses are included in "Selling, general, and administrative expenses" on the Consolidated Statement of Operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:ReceivablesPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80My9mcmFnOjNkYzdmZjA3MTY0NDQwNDM4ODdiNjk5NjEzMGY4MGY2L3RleHRyZWdpb246M2RjN2ZmMDcxNjQ0NDA0Mzg4N2I2OTk2MTMwZjgwZjZfNDMwMg_389938b0-6441-4898-b588-955b92319332">New Pronouncements&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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)"&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform.  The amendments in this ASU 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, 2022, except for hedging relationships existing as of December 31, 2022, that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship.  The amendments in this ASU are effective for all entities as of March 12, 2020 through December 31, 2022.  Management does not expect ASU 2020-04 to have a material impact on the Company's consolidated financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80My9mcmFnOjNkYzdmZjA3MTY0NDQwNDM4ODdiNjk5NjEzMGY4MGY2L3RleHRyZWdpb246M2RjN2ZmMDcxNjQ0NDA0Mzg4N2I2OTk2MTMwZjgwZjZfNDMxMA_a803799f-4bd6-48c6-9098-0ab2ec21e0ed">New Pronouncements&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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)"&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform.  The amendments in this ASU 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, 2022, except for hedging relationships existing as of December 31, 2022, that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship.  The amendments in this ASU are effective for all entities as of March 12, 2020 through December 31, 2022.  Management does not expect ASU 2020-04 to have a material impact on the Company's consolidated financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzc5OA_960d1d1d-fdb6-4c03-91b0-2e0bd8c0c28b">Fair Value Measurements&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 required to be measured at fair value on a recurring basis as of June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:49.098%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.812%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.812%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.814%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets (Level 1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Significant Other&lt;br/&gt;Observable&lt;br/&gt;Inputs (Level 2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unobservable Inputs (Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;236,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;230,692&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;91,610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,517&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Contingent consideration liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 upon 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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 upon 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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company recorded gross credit losses and gross credit recoveries on debt securities totaling $0 and $85,000, respectively, for the three-month period ended June 28, 2020, and $160,000 and $85,000, respectively, for the six-month period ended June 28, 2020. No credit losses or recoveries on debt securities were recorded for the three-month or six-month periods ended June 30, 2019.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company's contingent consideration liabilities are reported at fair value based upon probability-adjusted present values of the consideration expected to be paid using significant inputs that are not observable in the market, and are therefore classified as Level 3.  Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain revenue milestones.  The fair values of these contingent consideration liabilities were calculated using discount rates consistent with the level of risk of achievement, and are remeasured each reporting period.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The fair value of the contingent consideration liability related to the Company's acquisition of Chiaro Technologies, LLC was $1,153,000 as of December 31, 2019. During the three-month period ended June 28, 2020, the Company paid out $1,039,000 based upon the revenue levels achieved, with the remaining $114,000 recorded as a fair value adjustment in "Other income (expense)" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. was written down to zero as of December 31, 2019 resulting from a lower level of revenue in the Americas' automotive industry, and the balance remains at zero as of June 28, 2020. The undiscounted potential outcomes related to future contingent consideration range from $0 to $2,500,000 based upon certain revenue levels over the next two years. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&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. Our business has been adversely and materially impacted by deteriorating global economic conditions resulting from the COVID-19 pandemic. The significant decline in business levels triggered a review of long-lived assets for potential impairment as of May 26, 2020, which resulted in operating lease asset impairment charges of $2,534,000 (refer to Notes 6 and 16) that are included in "Restructuring charges" on the Consolidated Statements of Operations, and intangible asset impairment charges of $19,571,000 (refer to Note 8). These fair value measurements are based upon the present values of future cash flows using significant inputs that are not observable in the market, and are therefore classified as Level 3.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzgwMQ_4a888cf9-ea05-402f-a1cc-e44548a4344e">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 required to be measured at fair value on a recurring basis as of June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:49.098%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.812%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.812%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.814%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets (Level 1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Significant Other&lt;br/&gt;Observable&lt;br/&gt;Inputs (Level 2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unobservable Inputs (Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;236,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;230,692&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;91,610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,517&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Contingent consideration liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="i9dc01e71d6314fe6884aa8e36895f63e_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMi0xLTEtMS0w_4dcaec5b-237c-4a1e-894b-22bf9e603835"
      unitRef="usd">50222000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMi0zLTEtMS0w_81340683-7f10-4f7e-af9d-14a8bd71354a"
      unitRef="usd">0</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i751ce105a23043c9b8c7160cf868755e_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMy0zLTEtMS0w_b5959f12-5010-4ea3-aa9f-90550fdb05c3"
      unitRef="usd">236660000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i451bed49b98543ba8feeb4d38db529cb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfNC0zLTEtMS0w_b7455b7a-8bf1-497a-b062-c70747289ec3"
      unitRef="usd">230692000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i09ab9c2f3e284c039d5f1c7dabec64ea_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfNS0zLTEtMS0w_a1e6f595-4968-4bcf-8c31-c94f933ac5df"
      unitRef="usd">91610000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i959c1d93f1da448ba0d6ed03b2b352fa_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfNy0zLTEtMS0w_478c6b69-8503-4924-bb8c-e287d0b77ba7"
      unitRef="usd">27517000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i7a338ee96e604cef913d651070774eeb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfOC0zLTEtMS0yNDIw_d16870fa-a4ca-4db4-b5f8-5fc3e23544c7"
      unitRef="usd">22054000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i9af2528fb3cb42b2856fd1a7841c74d4_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfOC0zLTEtMS0w_00387aa6-fd14-4baf-ac7e-c6faa8d5b69c"
      unitRef="usd">1638000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure
      contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTMtMy0xLTEtMA_5dcf1c56-d1a0-440b-a440-bf39c8042ae1"
      unitRef="usd">46000</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure
      contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTYtMy0xLTEtMA_6b0ebbbc-bcb9-4bcd-8f51-f6db771bd091"
      unitRef="usd">458000</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="if4f9afe0d6af4e54bbbb6d745623672b_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTctMy0xLTEtMA_8f281c7b-374d-4b55-ab9d-95fee036de0d"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i5c79b7f8d5714c1ca485ccd80bc001f8_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RhYmxlOjY3ZTk0YzVlZmMyMTQzMzI5NTY5YjE5NjdkZmNiNDZjL3RhYmxlcmFuZ2U6NjdlOTRjNWVmYzIxNDMzMjk1NjliMTk2N2RmY2I0NmNfMTctNS0xLTEtMA_997e1c2c-1ade-4f8f-a164-bd0971530b9f"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM0NA_63b1679e-a708-4c36-8fc8-54e4f8879254"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM1MA_b0a9d976-9ddf-4169-aa80-8c6e7633f9c2"
      unitRef="usd">85000</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM1OQ_dc8eb01e-e2a2-4aa4-970d-400ebb199d2d"
      unitRef="usd">160000</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzM3MQ_5beb542e-21af-4dff-b99f-440e6e5e15e3"
      unitRef="usd">85000</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_7a5f65d2-d1a2-456f-a0de-3dc37dfbeb74"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_803ccb72-fc13-4ca5-9d50-fedec78c097f"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_a2a91fb3-94f0-4298-9b81-4bb1f09a857e"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTM3NDM4OTUzNzc4MjU_fa34111d-dacc-466d-a7a8-f2c2eaf7749a"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="i7bd2b9926b0141c490ca0c40a367e622_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMjc5Mw_63a60330-8044-4186-b9e9-478446ad6522"
      unitRef="usd">1153000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1MzcyOA_f4f05c9f-7329-48a4-acda-d5913348f016"
      unitRef="usd">1039000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:LiabilitiesFairValueAdjustment
      contextRef="if9ce6259d29647d6855d301fa7b1e39f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1Mzc0MQ_bc04d727-7810-4e53-b492-3f1573c92c4c"
      unitRef="usd">114000</us-gaap:LiabilitiesFairValueAdjustment>
    <us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzc5Nw_623617a8-628f-4041-a535-e6e4cc48ce1b">The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. was written down to zero as of December 31, 2019 resulting from a lower level of revenue in the Americas' automotive industry, and the balance remains at zero as of June 28, 2020. The undiscounted potential outcomes related to future contingent consideration range from $0 to $2,500,000 based upon certain revenue levels over the next two years.</us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzA3Nw_734a2872-19ec-4666-811a-93d279230379"
      unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzIwOQ_b397d2c5-ff69-47e6-a698-d90fe91ff51d"
      unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow
      contextRef="i4b5cd194378142eeb95ce442c13207a2_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzMyNQ_cd17bec3-7220-4278-b214-f21bf2143e31"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow
      contextRef="i1f553599986a436c9b3288c83cc53a3d_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMzMzMQ_55c6ac3b-1a04-44df-9f97-17a130fb6231"
      unitRef="usd">2500000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="i955df87e73494d7fa976f50036933ad1_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1ODMzMQ_5fd79f9b-e449-4e13-ad00-a1e04ca7416f"
      unitRef="usd">2534000</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl80Ni9mcmFnOjk2MzliM2E3NTFiODRmM2FhNjgxNDQ4N2E3OTk0MzBjL3RleHRyZWdpb246OTYzOWIzYTc1MWI4NGYzYWE2ODE0NDg3YTc5OTQzMGNfMTA5OTUxMTY1ODM5MA_1492fc66-6e53-4643-872b-60be28f4f385"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTU_39452c79-15df-4730-a70e-28e0e5bdd1ab">Cash, Cash Equivalents, and Investments&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:61.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.128%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.131%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;235,799&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;155,498&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;15,933&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;286,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;171,431&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;66,680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;65,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;34,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;92,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,294&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Certificate of deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,328&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;143,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;240,470&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;196,674&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;216,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;194,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;146,474&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;41,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;16,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;467,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;433,452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;896,192&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;845,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; corporate bonds consist of debt securities issued by both domestic and foreign companies; treasury bills consist of debt securities issued by the U.S. government; sovereign bonds consist of direct debt issued by foreign governments; municipal bonds consist of debt securities issued by state and local government entities; certificates of deposit are time deposits held by financial institutions with a fixed interest rate; and agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing.  All securities are denominated in U.S. Dollars, with the exception of the certificate of deposit held as of December 31, 2019 that was denominated in Korean Won.&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="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Accrued interest receivable is recorded in "Prepaid expenses and other current assets" on the Consolidated Balance Sheet and amounted to $1,958,000 and $2,874,000 as of June 28, 2020 and December 31, 2019, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On January 1, 2020, the Company adopted Accounting Standards Update (ASU) 2016-13,  &#x201c;Measurement of Credit Losses on Financial Instruments,&#x201d;  using the modified-retrospective approach, which requires the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to retained earnings as of the beginning of the period in which the guidance is effective.  The Company did not record an adjustment to retained earnings, as there were no debt securities with credit losses as of the adoption date. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:41.841%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.636%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.343%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.489%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.492%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;49,899&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,065&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(38)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;33,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;34,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;194,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;196,674&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;192,233&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(334)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;194,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40,817&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;41,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(18)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;603,822&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(398)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;610,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:29.811%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.754%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized Loss Position For:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Less than 12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12 Months or Greater&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;49,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(363)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,706&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(372)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(18)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;72,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(372)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,225&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(26)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;76,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(398)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company recorded gross credit losses and gross credit recoveries on debt securities totaling $0 and $85,000, respectively, for the three-month period ended June 28, 2020, and $160,000 and $85,000, respectively, for the six-month period ended June 28, 2020. No credit losses or recoveries on debt securities were recorded for the three-month or six-month periods ended June 30, 2019.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:78.441%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.559%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;160&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Decreases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(85)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Write-offs &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;75&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company recorded gross realized gains and gross realized losses on the sale of debt securities totaling $962,000 and $7,000, respectively, for the three-month period ended June&#160;28, 2020, and $394,000 and $12,000, respectively, for the three-month period ended June&#160;30, 2019. The Company recorded gross realized gains and gross realized losses on the sale of debt securities totaling $2,826,000 and $21,000, respectively, for the six-month period ended June 28, 2020, and $458,000 and $36,000, respectively, for the six-month period ended June 30, 2019. These 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, are recorded in shareholders&#x2019; equity as accumulated other comprehensive loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table presents the effective maturity dates of the Company&#x2019;s available-for-sale investments as of June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:34.988%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.387%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&amp;lt;1 year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1-2 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2-3 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3-4 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4-5 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;81,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;102,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;236,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;34,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;138,612&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;58,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;230,692&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;13,750&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23,308&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;91,610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,430&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,517&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;143,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;243,567&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;208,888&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;610,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzg4NQ_9c194ba2-ec43-4eaa-99fb-7f503bbddcf7">&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:61.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.128%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.131%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;235,799&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;155,498&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;15,933&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;286,021&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;171,431&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;66,680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;65,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;34,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;92,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,294&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Certificate of deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,328&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;143,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;240,470&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;196,674&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;216,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;194,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;146,474&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;41,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;16,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;467,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;433,452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;896,192&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;845,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock>
    <us-gaap:Cash
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMS0xLTEtMS0w_0b1b235e-b5e5-42b2-b536-38d3ae12e9d4"
      unitRef="usd">235799000</us-gaap:Cash>
    <us-gaap:Cash
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMS0zLTEtMS0w_6d7c90bd-b57b-4137-9458-90d852232873"
      unitRef="usd">155498000</us-gaap:Cash>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMy0xLTEtMS0w_73d888f0-9bf4-4be0-8e28-47a600fc24cf"
      unitRef="usd">50222000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMy0zLTEtMS0w_bd0fa3d4-61c2-48b4-bb29-ba8da47b7629"
      unitRef="usd">15933000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNC0xLTEtMS0w_692dd8b5-c376-4fb2-99b5-f221361197a6"
      unitRef="usd">286021000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNC0zLTEtMS0w_5cbc3cff-4ca5-4dd7-a7c8-40b11cbf8372"
      unitRef="usd">171431000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNS0xLTEtMS0w_4560ebd1-4cee-498a-804d-bab940ecd169"
      unitRef="usd">50311000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i524fffe11789474187ead333ba0d7920_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNS0zLTEtMS0w_18bb7823-48ac-4e43-8665-5775dd8277e4"
      unitRef="usd">66680000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNi0xLTEtMS0w_e669241d-a8e9-425c-a552-8834bccf9fa6"
      unitRef="usd">42248000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ibc7324cdfd4248d09bec160bf8f94fa6_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfNi0zLTEtMS0w_39f869bd-0097-4380-81d0-dc231b68b870"
      unitRef="usd">65624000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOC0xLTEtMS0w_63c3970d-1b35-4b28-b385-2fb440912404"
      unitRef="usd">34018000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i27a24cdf51794e24ae3a5d31a6666690_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOC0zLTEtMS0w_f1a0b7d1-8c31-43b1-a8c1-8c0363f9fe2a"
      unitRef="usd">92914000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="if30d5aee2c44425da343f5d66f39d18f_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0xLTEtMS0yNDMw_2a357c84-add9-4e49-a759-0cd33469c4c5"
      unitRef="usd">14869000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i85ff251260ad4df3bf4fef4a3c9db1b4_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0zLTEtMS0yNDMw_ef721a20-8912-4c88-bc8c-7452c39f11fc"
      unitRef="usd">6294000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0xLTEtMS0w_52178030-7015-4e48-a978-c0a05ef92469"
      unitRef="usd">1638000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i7428b2868c414661bdbe5132b920faf0_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfOS0zLTEtMS0w_2a56720d-a3a5-459e-a7d0-a5e89ecb852a"
      unitRef="usd">4630000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="idfa3a82b761842d3a82f32a1be036e1e_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTAtMS0xLTEtMA_67a9114e-67ea-4047-8960-21eb7d59d7e2"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ia00037290a1f430e8012506014c58c72_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTAtMy0xLTEtMA_e1527f36-6927-43d8-9b7e-40fd54372a3e"
      unitRef="usd">4328000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTQtMS0xLTEtMA_7e2fbde6-c145-4762-b078-6aa67b5c6dc6"
      unitRef="usd">143084000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTQtMy0xLTEtMA_c74147cb-3c2c-4254-9525-4d9a45ebd8c5"
      unitRef="usd">240470000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTUtMS0xLTEtMA_9d4d87d0-be82-4781-8678-abaab70bfe14"
      unitRef="usd">196674000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i27a24cdf51794e24ae3a5d31a6666690_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTUtMy0xLTEtMA_0c0758cd-5fe0-4d5b-af19-04cc27d16095"
      unitRef="usd">216334000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTYtMS0xLTEtMA_829e43d1-bcf4-42a5-be6c-0cb42fab4699"
      unitRef="usd">194412000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="ibc7324cdfd4248d09bec160bf8f94fa6_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTYtMy0xLTEtMA_57c4262d-63e2-4f41-a9d6-7dc0f0c96b6b"
      unitRef="usd">146474000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTctMS0xLTEtMA_dae2290f-bf20-460b-8d77-b298b6e9f380"
      unitRef="usd">41299000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i524fffe11789474187ead333ba0d7920_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTctMy0xLTEtMA_6089b4e2-7313-4c04-a2f4-f7f6620ae64e"
      unitRef="usd">46403000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMS0xLTEtMjQzNw_37427037-bdd7-4937-90d3-bf195e268956"
      unitRef="usd">22054000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i4c49e8a5b27241c8a53e6dfe04b134b4_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMy0xLTEtMjQzNw_1bb37a74-9092-4a1d-b64c-6d00a650a81d"
      unitRef="usd">5914000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMS0xLTEtMA_6ae42777-85c0-408f-a8df-67e58f4b3064"
      unitRef="usd">12648000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="ib004241936c04bb9ae9de0b6d0b240c5_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMTgtMy0xLTEtMA_33f718e8-7cfd-406c-8098-fa5547fa3db7"
      unitRef="usd">16005000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjAtMS0xLTEtMA_0c76165c-4dd7-4f65-a185-b500293d24b3"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i7428b2868c414661bdbe5132b920faf0_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjAtMy0xLTEtMA_34780cbf-201b-45b0-bc66-13b65fabaa84"
      unitRef="usd">2322000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:LongTermInvestments
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjMtMS0xLTEtMA_a9bc6dc6-d749-493e-88dc-4bcf46eaf884"
      unitRef="usd">467087000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjMtMy0xLTEtMA_a5faf35f-6d36-415d-ba1b-5c2939d0c283"
      unitRef="usd">433452000</us-gaap:LongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjQtMS0xLTEtMA_decba90f-b6dd-4fd0-b614-56e6e28989f7"
      unitRef="usd">896192000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjYyMzc0NzVmOGRlMDQ1ZGJhNjZkNzA0MWQ0MTEzODAxL3RhYmxlcmFuZ2U6NjIzNzQ3NWY4ZGUwNDVkYmE2NmQ3MDQxZDQxMTM4MDFfMjQtMy0xLTEtMA_63847b56-9aaf-4a89-9b07-ecaaad1939eb"
      unitRef="usd">845353000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <us-gaap:InterestReceivable
      contextRef="ia44d8601ad7741d991c09e99ce636799_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMzkxMg_46c05657-a5dc-43de-8f79-0ae08962c778"
      unitRef="usd">1958000</us-gaap:InterestReceivable>
    <us-gaap:InterestReceivable
      contextRef="ifc1802cbd48d47b89b0cfa0214579bbf_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMzkyMA_8dc1896a-4f45-4d21-9cae-baf717bc1b98"
      unitRef="usd">2874000</us-gaap:InterestReceivable>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzg5OQ_c39f8e2c-7f2f-4e13-be8f-e354108e3ebe">&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:41.841%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.636%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.343%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.489%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.492%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;49,899&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,065&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(38)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;33,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;34,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;194,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;196,674&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;192,233&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(334)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;194,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40,817&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;484&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;41,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(18)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;603,822&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(398)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;610,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi0xLTEtMS0w_9c58049b-1bec-41b5-87eb-43271db5ad5b"
      unitRef="usd">49899000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi0zLTEtMS0w_4cbc336b-5f7a-442b-858d-55a759a066f6"
      unitRef="usd">412000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi01LTEtMS0w_d973b6e2-1c62-4cc5-a2f1-8cb0c7997fcb"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie53b122d392e48d78d2eb049e3278b50_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMi03LTEtMS0w_64878fac-49eb-4e7f-acad-9bf792374e0a"
      unitRef="usd">50311000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy0xLTEtMS0w_e7fbfb74-3b19-4655-a1cb-5b2b0b242b74"
      unitRef="usd">42065000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy0zLTEtMS0w_438ea161-4ba8-41ec-9fc5-68b8eafb6f18"
      unitRef="usd">221000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy01LTEtMS0w_bddc1eb7-4cf5-44c0-a4f7-57099aa95ff3"
      unitRef="usd">38000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="if4e61c976baa40a2871a88e06a4e8c4d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMy03LTEtMS0w_ab12d37f-78f6-4897-8279-592ab185e471"
      unitRef="usd">42248000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy0xLTEtMS0w_dff739c6-c641-431d-9d53-bcc01f02d1ab"
      unitRef="usd">33480000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy0zLTEtMS0w_f31e53bb-b8e9-4319-b4ad-15365254e37b"
      unitRef="usd">538000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy01LTEtMS0w_0b5aad7c-9db3-4864-984f-945fc12e3546"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="iae3918a8cdad4e7a9bea1c3947b20656_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfNy03LTEtMS0w_b9371617-d539-4922-af86-3920e34d2468"
      unitRef="usd">34018000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i30de0db3427742059c4e647dd6f45516_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0xLTEtMS0yNDY3_5d7f67a4-91d2-45c9-8cd9-dc2c236dd067"
      unitRef="usd">14787000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i30de0db3427742059c4e647dd6f45516_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0zLTEtMS0yNDY3_fa1144c2-b018-4700-add3-b54a1f292b16"
      unitRef="usd">82000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i30de0db3427742059c4e647dd6f45516_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC01LTEtMS0yNDY3_029498df-131e-44df-9266-fafed1525d91"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i30de0db3427742059c4e647dd6f45516_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC03LTEtMS0yNDY3_eb3aa929-25fc-4f3a-945c-6bbc40c3dbb9"
      unitRef="usd">14869000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0xLTEtMS0w_25ccbb4e-6999-408b-9030-5d726bd03456"
      unitRef="usd">1643000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC0zLTEtMS0w_156ab8b3-7c91-4a25-9a82-19904a4e1213"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC01LTEtMS0w_783b8d1f-4a2b-43cc-8313-5512a8600260"
      unitRef="usd">5000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i4aa8afd354c1497e8a82da39af166564_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfOC03LTEtMS0w_07f11c0e-f820-4857-a245-833c6beacb1b"
      unitRef="usd">1638000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ic589f29e9d0d424699fac022a6168312_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItMS0xLTEtMA_f9d4572d-2ec5-41a4-972d-69917c47e558"
      unitRef="usd">194330000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ic589f29e9d0d424699fac022a6168312_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItMy0xLTEtMA_d318138b-8ccb-4515-aa99-fc5df972fdc0"
      unitRef="usd">2345000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ic589f29e9d0d424699fac022a6168312_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItNS0xLTEtMA_442ecff2-1265-433f-b20a-1e6d7ddc39d3"
      unitRef="usd">1000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ic589f29e9d0d424699fac022a6168312_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTItNy0xLTEtMA_b26d8203-fb68-4ed0-8546-93dfb7610650"
      unitRef="usd">196674000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtMS0xLTEtMA_570770cf-c1c4-47e6-9902-4b3f3df59585"
      unitRef="usd">192233000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtMy0xLTEtMA_26ed0dc8-842c-4da2-8339-207f47ddc981"
      unitRef="usd">2513000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtNS0xLTEtMA_6024d7fb-a74b-4d3b-94b4-164461ab6758"
      unitRef="usd">334000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i55b1fd91b65b48cda665060e16c8da1c_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTMtNy0xLTEtMA_5df223d1-9f15-4c79-b457-4d5853898707"
      unitRef="usd">194412000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtMS0xLTEtMA_d359069b-06c1-415a-9553-7cb85da78f64"
      unitRef="usd">40817000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtMy0xLTEtMA_d1d09c27-6ac0-41ff-bcaf-daa3c9bf4d11"
      unitRef="usd">484000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtNS0xLTEtMA_99c22cd3-c14f-40fb-b9a2-50bfe00b653c"
      unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id263e8429ddf42988c0b21b545b1ef16_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTQtNy0xLTEtMA_3741faf7-0a11-4fec-a1f4-e0cf87ea50e4"
      unitRef="usd">41299000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMS0xLTEtMjQ3NA_4abb7784-9c01-4d4e-bd36-100b0aeb1b86"
      unitRef="usd">22035000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMy0xLTEtMjQ3NA_e2b2856c-5138-427b-a919-868d82360657"
      unitRef="usd">37000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNS0xLTEtMjQ3NA_100fd53c-9a87-4ce1-98db-45b209b9147d"
      unitRef="usd">18000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i36ca6a11d1ac4087ab59eca47da110cd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNy0xLTEtMjQ3NA_5c148d07-5ec1-4d63-b701-c81a28ad0f85"
      unitRef="usd">22054000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMS0xLTEtMA_0a8b6333-ddef-4d35-9004-70fc0faf358d"
      unitRef="usd">12533000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtMy0xLTEtMA_b5e4a14d-1661-4327-89ff-c93512dfec76"
      unitRef="usd">115000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNS0xLTEtMA_762a9f77-a9a0-498e-9ff9-c55bfea48c71"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i6c7a75be726544c3950ebaf23e4eefc6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTUtNy0xLTEtMA_0b47496c-b380-42fe-bf32-6d82b14abda6"
      unitRef="usd">12648000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtMS0xLTEtMA_d30a3d92-b4db-4279-9bdc-2cfd159e4122"
      unitRef="usd">603822000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtMy0xLTEtMA_0a94bac0-a837-470b-a349-c42c945e03c0"
      unitRef="usd">6747000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtNS0xLTEtMA_3d3ffb05-c4a6-4919-874c-bd5590bf4771"
      unitRef="usd">398000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjA0NmFiNTBkZmU3NTQxMzM4YzgzNzdkMjdiMWIxYWQ4L3RhYmxlcmFuZ2U6MDQ2YWI1MGRmZTc1NDEzMzhjODM3N2QyN2IxYjFhZDhfMTgtNy0xLTEtMA_b4a6605f-3317-4211-a97e-d57d6900a4d0"
      unitRef="usd">610171000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzg4NA_2e6ba39a-3bc7-43ea-be8c-bca198782f99">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:29.811%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.751%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.754%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="21" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized Loss Position For:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Less than 12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12 Months or Greater&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair&#160;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;49,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(363)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,706&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(372)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;260&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(18)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;72,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(372)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,225&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(26)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;76,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(398)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy0xLTEtMS0w_c10b3406-86a4-4334-86e0-4782a8d4e106"
      unitRef="usd">49525000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy0zLTEtMS0w_e63dfd7e-f32a-4bde-a9b2-d05b0f8037e4"
      unitRef="usd">363000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy01LTEtMS0w_709376d6-f235-4723-adf5-4aa107c15062"
      unitRef="usd">1181000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy03LTEtMS0w_92f4da60-a3d5-4354-bf2c-65b7c6141023"
      unitRef="usd">9000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy05LTEtMS0w_6b2fcda8-f1fb-4690-9f6a-ab91a79f86eb"
      unitRef="usd">50706000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMy0xMS0xLTEtMA_b18ff46f-444e-4a67-89b4-02da3fa2fdab"
      unitRef="usd">372000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xLTEtMS03Njc4_738e2229-70ea-4088-a0f4-da8231f8d0e0"
      unitRef="usd">12962000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0zLTEtMS03Njc4_4ff0231f-f369-4baa-aaf0-5c234b545d8d"
      unitRef="usd">1000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC01LTEtMS03Njc4_6855d08f-f385-485b-a469-83fa1357a21e"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC03LTEtMS03Njc4_3059151d-2951-4c14-b30c-5f8ad1266ce6"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC05LTEtMS03Njc4_44c2d24b-92f7-4c2d-8fde-d5e6683d7336"
      unitRef="usd">12962000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xMS0xLTEtNzY3OA_3ea995bd-d873-4024-825a-23809a22c8b1"
      unitRef="usd">1000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xLTEtMS0w_0666cced-5219-4f27-ac14-6aa6c900df11"
      unitRef="usd">5749000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0zLTEtMS0w_75980c2e-0c9d-4b6a-9982-d63d53f93163"
      unitRef="usd">1000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC01LTEtMS0w_ae8c219e-3a48-499b-a7d7-5005c91a5792"
      unitRef="usd">260000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC03LTEtMS0w_e89f872c-d48b-402b-bf40-ad1cc47dea22"
      unitRef="usd">1000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC05LTEtMS0w_cb111751-ea0a-4f6c-80fe-c049cf30c018"
      unitRef="usd">6009000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNC0xMS0xLTEtMA_d0f4441f-9adf-471f-ac71-df33fbe8a0f2"
      unitRef="usd">2000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy0xLTEtMS0w_2d93cd50-0ad0-462c-9e73-4a36e10a550e"
      unitRef="usd">3128000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy0zLTEtMS0w_4488d3e8-8aa5-48e7-a773-799df917b7f0"
      unitRef="usd">2000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy01LTEtMS0w_99c2cad8-ca6d-401e-adac-f2f9ee1afaea"
      unitRef="usd">2784000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy03LTEtMS0w_5b9f52ec-1e34-43e8-a4d5-db052bd04cf5"
      unitRef="usd">16000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy05LTEtMS0w_f4df7b09-deaf-4bbf-a2fc-5f4dcc6d56a8"
      unitRef="usd">5912000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfNy0xMS0xLTEtMA_9628049c-d330-4839-bf65-046adcfd302d"
      unitRef="usd">18000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC0xLTEtMS0w_d99a2339-80d5-416a-a4dd-3e57d8bd0d38"
      unitRef="usd">1293000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC0zLTEtMS0w_3934ed8d-8f96-4d7c-937d-3b4b26daff2a"
      unitRef="usd">5000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC01LTEtMS0w_4bef496a-0368-411c-a8e1-e6140cf5a43b"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC03LTEtMS0w_dbff0349-e9a7-4a0f-877c-2bec19902e7a"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC05LTEtMS0w_8d3f54e9-8faa-4d54-8e5e-ebb5b402d8c5"
      unitRef="usd">1293000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfOC0xMS0xLTEtMA_9c4f962d-cbfd-4ae8-a7cf-816b3b7ad777"
      unitRef="usd">5000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtMS0xLTEtMA_5a2f6f97-9a7c-423c-b219-0565621cf1ce"
      unitRef="usd">72657000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtMy0xLTEtMA_74cf302e-e132-412d-b033-b3227be46277"
      unitRef="usd">372000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtNS0xLTEtMA_ca259652-b7a6-4581-9390-bcb45b137b01"
      unitRef="usd">4225000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtNy0xLTEtMA_e0c0e9de-b2d4-4963-bc3f-9bde1e5a8acc"
      unitRef="usd">26000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtOS0xLTEtMA_544ae0df-ede3-4052-9f40-f1ee0b95eaf1"
      unitRef="usd">76882000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjhmZjY1MzJiZjZlOTRjOWM4NTc0NjgzNDAwYmQxYzllL3RhYmxlcmFuZ2U6OGZmNjUzMmJmNmU5NGM5Yzg1NzQ2ODM0MDBiZDFjOWVfMTEtMTEtMS0xLTA_0dadb142-f4a6-48ef-835c-03187621f99a"
      unitRef="usd">398000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTY0OTI2NzQ0NzM0MQ_007c0925-f6c4-4a3f-9233-59bbefc0fb11"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjI4NQ_ecb42552-51b3-4813-9317-5da401fbc9e3"
      unitRef="usd">85000</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjI5NA_19a02a3e-30bb-4645-8ce8-de0162027a9b"
      unitRef="usd">160000</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMzQ3Ng_edf6d83a-4a67-4589-8b18-dcf0af93d322"
      unitRef="usd">85000</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_1752e1f2-dcca-4d89-b3ba-e9e1dc43ecd6"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_1c1c3cba-cc56-49aa-aed6-5189fcb10763"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_9a82cbba-c76e-49ec-82c4-236512bbc365"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTM3NDM4OTUzNTM5NTY_e515d2fa-b1f2-413f-b802-58d2728d73ad"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzkwOQ_9a91e816-b436-499e-925a-b0e1a080fe9e">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:78.441%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.559%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;160&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Decreases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(85)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Write-offs &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;75&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMC0xLTEtMS0w_2776be02-aaa3-4f1e-bef2-ce5d8962031a"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMS0xLTEtMS0w_9a87529a-fb23-458a-b465-c25e6a24c59b"
      unitRef="usd">160000</us-gaap:DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMi0xLTEtMS03Njg1_b3d91d7d-5197-46dd-8279-22b2a8809114"
      unitRef="usd">85000</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfMi0xLTEtMS0w_c64f31a6-7f2c-41b7-8e2a-e1712848f04a"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjVmNjEzMDBhOWNjMTQzN2Y5YzdkZTJjNjFkOTYyOTA4L3RhYmxlcmFuZ2U6NWY2MTMwMGE5Y2MxNDM3ZjljN2RlMmM2MWQ5NjI5MDhfNC0xLTEtMS0w_74316229-65f7-436b-b050-f702b085678b"
      unitRef="usd">75000</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedGains
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzA0OA_56540d61-7b48-44b2-a2d7-4a86a819e238"
      unitRef="usd">962000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjMxNA_891754f7-fa89-4b30-be9c-2f320d9e52fc"
      unitRef="usd">7000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedGains
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzExNw_073618eb-8f60-4a72-87a6-1a7d93c86f17"
      unitRef="usd">394000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzEyNA_268ad60c-4aea-4356-84fd-2905fb5a462c"
      unitRef="usd">12000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedGains
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjM2NQ_d060ade0-9515-4c79-b68f-d0aca87c8052"
      unitRef="usd">2826000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMTA5OTUxMTYzMjM3OQ_53d5016f-1362-4d55-9ecc-b6070a4521ff"
      unitRef="usd">21000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedGains
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzM3MA_40b1306c-bca3-48d6-9292-e37419c1603d"
      unitRef="usd">458000</us-gaap:AvailableForSaleSecuritiesGrossRealizedGains>
    <us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzM3OA_003d555e-3bc3-4ef6-9cd9-7c1609e44ebf"
      unitRef="usd">36000</us-gaap:AvailableForSaleSecuritiesGrossRealizedLosses>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RleHRyZWdpb246NDk0MjA4OGM3MTNjNGRmYjkzODZhNTQyMjdmZDExNWZfMzkxNw_dd384df4-d119-4e39-9111-bd2d0f0fd0e8">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table presents the effective maturity dates of the Company&#x2019;s available-for-sale investments as of June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:34.988%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.795%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.387%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&amp;lt;1 year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1-2 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2-3 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3-4 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4-5 Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;81,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;102,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;236,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Treasury bills&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;34,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;138,612&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;58,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;230,692&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;13,750&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23,308&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;91,610&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,430&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,517&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,054&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;143,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;243,567&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;208,888&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;610,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS0xLTEtMS0w_a8e6be7f-2f72-4fb8-be34-20f1d60835ff"
      unitRef="usd">42248000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS0zLTEtMS0w_6059ee54-d2b6-487f-a032-82e3b371d235"
      unitRef="usd">81987000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS01LTEtMS0w_ded1a643-bfe6-4bef-b49b-7d99bc3f66c4"
      unitRef="usd">102034000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS03LTEtMS0w_485fcb73-c9b8-4b07-af8e-dd7c6c394bec"
      unitRef="usd">10391000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS05LTEtMS0w_46b52c67-f26b-4788-a7c4-5d357e3a28dc"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="icdd1279cdd444b3b8d446d8df78f669d_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMS0xMy0xLTEtMA_0de20121-fae6-4e52-bd91-9eb6f4eca6fa"
      unitRef="usd">236660000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi0xLTEtMS0w_708c7a16-25a1-46a8-b6ba-d2cd83377b20"
      unitRef="usd">34018000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi0zLTEtMS0w_49b513d4-9aba-42a6-81ce-6c129ee3e423"
      unitRef="usd">138612000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi01LTEtMS0w_8f9f141a-6218-4e6d-889d-7938d863a54f"
      unitRef="usd">58062000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi03LTEtMS0w_be82bf2d-3258-42a7-ae73-9efe04c06e32"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi05LTEtMS0w_961ec377-53d1-4e4d-99f3-0d96f3ca750e"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i59c12507d0b642e9b81c2e821913ae17_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMi0xMy0xLTEtMA_23eb1146-b517-4481-a4e2-6fb087387669"
      unitRef="usd">230692000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy0xLTEtMS0w_8f48ca79-7b36-42a7-a55a-6872996760d8"
      unitRef="usd">50311000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy0zLTEtMS0w_44b15e6c-05e4-4955-93bd-e5f6a56fe5d1"
      unitRef="usd">13750000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy01LTEtMS0w_57290441-23a9-4684-8ab4-18feaaf8a21e"
      unitRef="usd">23308000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy03LTEtMS0w_84cdbbe3-059a-4caa-a92b-b53e19923cea"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy05LTEtMS0w_62b457f9-9631-4bcc-ba9c-a3c9ba9dc139"
      unitRef="usd">4241000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i3f9be86c082d454982db4b1e9f417f66_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMy0xMy0xLTEtMA_a99f0925-a227-4ae9-859b-c6c1f263568a"
      unitRef="usd">91610000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi0xLTEtMS0w_2e5585d5-7a71-4ada-b755-6d1ece306ad3"
      unitRef="usd">14869000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi0zLTEtMS0w_250c8891-ce9e-4497-83df-1602f1c0ade8"
      unitRef="usd">9218000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi01LTEtMS0w_15dc9f21-8239-4866-9413-dc688d8ed833"
      unitRef="usd">3430000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi03LTEtMS0w_9ac56fe1-7cae-4699-bb5c-1b91116867d9"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi05LTEtMS0w_c15bb62c-8628-4263-9fcf-fdea6a7a378d"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i06e0e5ec54654eff96def2f8cdfbeff3_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNi0xMy0xLTEtMA_28931daa-8439-43d0-8ced-70afc19d3fa5"
      unitRef="usd">27517000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xLTEtMS0yNTA0_927f835b-14a4-4a21-9799-0bb18e743b90"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0zLTEtMS0yNTA0_4605782c-4e91-46b4-b896-ba9b82cc94f9"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy01LTEtMS0yNTA0_dc9ba255-08ec-4ca8-8dae-8366f8ce91df"
      unitRef="usd">22054000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy03LTEtMS0yNTA0_c5e0564e-6bfb-4064-be1b-4ec630f558da"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy05LTEtMS0yNTA0_ace0ca01-a2df-4604-a69c-8d09781b4479"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id328d17eff4842a997835619d489bb34_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xMy0xLTEtMjUwNA_9d5f5010-e440-4c8b-ba5a-c238d81e7abc"
      unitRef="usd">22054000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xLTEtMS0w_cff8dcfb-4750-481b-b00e-7c1b03de0b2a"
      unitRef="usd">1638000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0zLTEtMS0w_c47cf5af-c0e2-40bd-8950-9c3db17abf0b"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy01LTEtMS0w_a2e7aeb3-ab39-4241-8d1d-348e3c3d21bb"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy03LTEtMS0w_f71e5bc8-f4b5-4f99-8558-dff3942c2eae"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy05LTEtMS0w_9bc8cbe6-3663-4a55-8c13-6d6659624e27"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i54dae5d47f944bb7ae18a72c0bbf60f7_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfNy0xMy0xLTEtMA_3f7489f4-7d89-4971-aeb9-f605791ddd3a"
      unitRef="usd">1638000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtMS0xLTEtMA_c3337d9c-5c14-40db-bed8-74f2f4a3ad6f"
      unitRef="usd">143084000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtMy0xLTEtMA_88d94897-6cd1-41c7-886c-8aa3d86e5ab9"
      unitRef="usd">243567000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtNS0xLTEtMA_f10f22c9-f6f4-48b9-8d6d-8eca850a9224"
      unitRef="usd">208888000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtNy0xLTEtMA_d445bed4-3138-4176-b53b-13e793b0bed5"
      unitRef="usd">10391000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtOS0xLTEtMA_2e5a3352-a63e-4010-b334-9f38990e59f1"
      unitRef="usd">4241000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81Mi9mcmFnOjQ5NDIwODhjNzEzYzRkZmI5Mzg2YTU0MjI3ZmQxMTVmL3RhYmxlOjNjMDRkYTZlZjU0YzRjMjBiY2MyNmI3YzE0OTM4Yjk1L3RhYmxlcmFuZ2U6M2MwNGRhNmVmNTRjNGMyMGJjYzI2YjdjMTQ5MzhiOTVfMTEtMTMtMS0xLTA_212e7127-35bb-4275-8d17-2ec572dd6080"
      unitRef="usd">610171000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfOTMw_c1b5fb47-b544-41d9-9cc0-1b367409ab07">Inventories&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:61.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.128%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.131%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;20,736&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,285&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;28,106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,473&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;52,953&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;60,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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;span style="background-color:rgb(255,255,255, 0.0);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 $7,718,000 and $8,783,000 for the three-month and six-month periods ended June 28, 2020, respectively, which reduced the carrying value of the inventories to their net realizable value. The charges for the three-month period ended June 28, 2020 were due to lower projected sales of excess inventories as a result of deteriorating global economic conditions from the COVID-19 pandemic.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfOTMz_7fe7dd79-9eef-478d-a016-8931164d61f4">&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:61.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.128%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.131%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;20,736&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,285&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;28,106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;27,473&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;52,953&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;60,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMS0xLTEtMS0w_52026f11-1ebf-42cc-a3e3-3a34de776654"
      unitRef="usd">20736000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMS0zLTEtMS0w_0b0b8177-5855-4760-beda-d99641f76737"
      unitRef="usd">27285000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMi0xLTEtMS0w_14a2644a-c2ec-43cc-9be4-4713e053fa2e"
      unitRef="usd">4111000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMi0zLTEtMS0w_eb4a6159-81b6-4ce1-ae85-849050cde725"
      unitRef="usd">5503000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMy0xLTEtMS0w_6fabf364-f75c-42c2-9127-b676c502482e"
      unitRef="usd">28106000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfMy0zLTEtMS0w_afe9d278-5fd7-4d45-a14b-f030b336f228"
      unitRef="usd">27473000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfNC0xLTEtMS0w_f4546c8a-7fa3-4424-b025-4c3bcb3aa713"
      unitRef="usd">52953000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RhYmxlOjBmZWM4ZDc5OWY2YjRlNGJiMGVmODM0OTczZWUzMmY4L3RhYmxlcmFuZ2U6MGZlYzhkNzk5ZjZiNGU0YmIwZWY4MzQ5NzNlZTMyZjhfNC0zLTEtMS0w_28c7fd3e-f25c-498d-9e3d-9e42b643dac1"
      unitRef="usd">60261000</us-gaap:InventoryNet>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfMTA5OTUxMTYzOTY5Mw_4b972d3c-4661-47ae-befb-c9a328f9950f"
      unitRef="usd">7718000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81NS9mcmFnOjZjN2M1ODNmY2JjYjRjMDNhMmEyZjA4MDgzNjdhZjExL3RleHRyZWdpb246NmM3YzU4M2ZjYmNiNGMwM2EyYTJmMDgwODM2N2FmMTFfMTA5OTUxMTYzOTcwNw_d7d191d5-f336-49a7-be6f-2f3485c9ba7a"
      unitRef="usd">8783000</cgnx:ExcessAndObsoleteInventoryCharges>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMjEyMw_325da3da-3fb9-4626-b518-55ed0422effe">Leases&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of June&#160;28, 2020.  Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index.  There were no restrictions or covenants for the leases outstanding as of June&#160;28, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The total operating lease expense for the three-month periods ended June&#160;28, 2020 and June 30, 2019 was $2,147,000 and $1,742,000, respectively.  The total operating lease cash payments for the three-month periods ended June&#160;28, 2020 and June 30, 2019 were $2,091,000 and $1,669,000, respectively. 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 $23,000 and $64,000 for the three-month periods ended June&#160;28, 2020 and June 30, 2019, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The total operating lease expense for the six-month periods ended June 28, 2020 and June 30, 2019 was $4,053,000 and $3,227,000, respectively. The total operating lease cash payments for the six-month periods ended June 28, 2020 and June 30, 2019 were $3,954,000 and $3,070,000, respectively. 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 $62,000 and $233,000 for the six-month periods ended June 28, 2020 and June 30, 2019, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:81.748%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:2.728%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.324%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amount &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Remainder of fiscal 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,335&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,973&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 $28,836,000 and $17,973,000 as of June&#160;28, 2020 and December 31, 2019, respectively.  The Company did not have any leases that had not yet commenced but that created significant rights and obligations as of June&#160;28, 2020 or June 30, 2019. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The weighted-average discount rate was 4.1% and 4.8% for the leases outstanding as of June&#160;28, 2020 and June 30, 2019, respectively.  The weighted-average remaining lease term was 5.3 and 3.6 years for the leases outstanding as of June&#160;28, 2020 and June 30, 2019, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;As part of the Company's restructuring plan (refer to Note 16), management closed ten leased offices as of June 28, 2020 prior to the end of their lease terms. The carrying value of the lease assets associated with these ten offices has been reduced to zero as of June 28, 2020, resulting in operating lease asset impairment charges of $2,534,000 for the three-month period ended June 28, 2020 that are included in "Restructuring charges" on the Consolidated Statements of Operations. Management is currently negotiating early contract terminations for the remaining lease liability obligations associated with these abandoned offices. &lt;/span&gt;&lt;/div&gt;The Company owns a building adjacent to its corporate headquarters that was partially occupied by a tenant for a portion of the current year. This lease was terminated prior to the end of its lease term during the three-month period ended June 28, 2020. Rental income was $0 and $81,000 for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019, respectively, and $77,000 and $158,000 for the six-month periods ended June 28, 2020 and June 30, 2019, respectively. The Company is now fully occupying this building for its operations.</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfNzk0_a70b08b5-802d-410b-96bc-39e2894c111c"
      unitRef="usd">2147000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfODAx_44445780-70d7-459a-8e83-d1404a22f0fa"
      unitRef="usd">1742000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeasePayments
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfOTE3_3657a4d8-c372-4403-97a5-e3b616bcd4e6"
      unitRef="usd">2091000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfOTI0_5d8ddd7d-58b7-4f49-beca-30c53fffcc17"
      unitRef="usd">1669000</us-gaap:OperatingLeasePayments>
    <us-gaap:LeaseCost
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OQ_1ba8b7c9-2fa2-4b2a-bb83-628cb0b84065"
      unitRef="usd">23000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTEwNg_08037a0f-92e0-46aa-97c8-73aeba210613"
      unitRef="usd">64000</us-gaap:LeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYxNg_24403936-0cb7-43b9-9a76-fc2ba9a6cfb7"
      unitRef="usd">4053000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYwNQ_44711c22-9bbe-4636-81c4-bcee5daa9675"
      unitRef="usd">3227000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeasePayments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYyNw_519d5a0e-c585-4274-b840-bfe01e06515f"
      unitRef="usd">3954000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDYzOA_83262c54-d3b3-44d5-a0c9-193bfe566366"
      unitRef="usd">3070000</us-gaap:OperatingLeasePayments>
    <us-gaap:LeaseCost
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDY0OQ_b60c3ee0-9468-4bcd-8dc6-b2227f9a13cb"
      unitRef="usd">62000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzMDY1Nw_4723dd7c-f5be-4530-a74c-4fa8538182df"
      unitRef="usd">233000</us-gaap:LeaseCost>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMjExOQ_746cc691-af22-4bb3-bbd0-35ebcf96af12">&lt;div style="margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:81.748%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:2.728%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.324%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amount &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Remainder of fiscal 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,335&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,973&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,391&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfMS0yLTEtMS0w_1983feec-0953-4dd3-bd4f-1c5965687179"
      unitRef="usd">4335000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfMi0yLTEtMS0w_adc101ee-4c5d-440b-8f3b-2dbceb1cea2e"
      unitRef="usd">8340000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfMy0yLTEtMS0w_073e0d27-32e0-4abd-8357-bc79acef9b2b"
      unitRef="usd">6169000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNC0yLTEtMS0w_7027fd42-4502-44d4-8f36-97a143dfed70"
      unitRef="usd">4973000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNS0yLTEtMS0w_8ebc4363-21bc-4e51-99b4-46e675178587"
      unitRef="usd">2391000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <cgnx:LesseeOperatingLeaseLiabilityPaymentsDueYearSix
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNi0yLTEtMS0w_bd050893-692d-456c-857a-e65f99a2553f"
      unitRef="usd">1322000</cgnx:LesseeOperatingLeaseLiabilityPaymentsDueYearSix>
    <cgnx:LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfNy0yLTEtMS0w_0a3f285d-8082-4bbd-abf2-5fb56f556a5d"
      unitRef="usd">4462000</cgnx:LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RhYmxlOmI2NTMwN2Y4ZjIwOTRmMGU5ZGY3YjYxN2Q1YjAyMWI0L3RhYmxlcmFuZ2U6YjY1MzA3ZjhmMjA5NGYwZTlkZjdiNjE3ZDViMDIxYjRfOC0yLTEtMS0w_776d468b-b03d-4d4f-9bc8-7adc826578bc"
      unitRef="usd">31992000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:OperatingLeaseLiability
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTM0Mg_75317c47-7277-4892-9b30-b161e5d05430"
      unitRef="usd">28836000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTM0OQ_25c37c23-228a-4d79-99c6-2f28f8c19260"
      unitRef="usd">17973000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTU4MQ_f3d2d5ed-5e65-42ac-abc2-bd19aa8c41ae"
      unitRef="number">0.041</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTU4OQ_aa48667e-c19b-48ca-bffb-6ebb27746e6a"
      unitRef="number">0.048</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTcwOA_6972c2a9-ff6b-45ff-ac96-661ce241f6c8">P5Y3M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="ia6f4db9bc2324d3aaafb2c30d55fb3f8_I20190630"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTcxNg_30e1899a-32b8-4efd-a568-36e067418f27">P3Y7M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <cgnx:OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTY0NDQ0Nw_2da6ec2d-e5a8-4427-a2cf-cb5fbda325d0"
      unitRef="usd">0</cgnx:OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTY0NDU0OQ_b41a684b-7199-4d6c-a2ed-8c6c76bb1800"
      unitRef="usd">2534000</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:OperatingLeaseLeaseIncome
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzOTE1MQ_64a45fc9-9bce-434a-8fb7-b14486a1fc8c"
      unitRef="usd">0</us-gaap:OperatingLeaseLeaseIncome>
    <us-gaap:OperatingLeaseLeaseIncome
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTk2Ng_17b2f259-40ad-44ed-ae83-f3b33851a4af"
      unitRef="usd">81000</us-gaap:OperatingLeaseLeaseIncome>
    <us-gaap:OperatingLeaseLeaseIncome
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzOTE2Mw_bbf9a5d3-6719-4410-ac6c-3734be66c64e"
      unitRef="usd">77000</us-gaap:OperatingLeaseLeaseIncome>
    <us-gaap:OperatingLeaseLeaseIncome
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl81OC9mcmFnOjYwOWRmZTNmY2Q0YzRhODY5NGFkOGZhNTc2ODQ2Y2ViL3RleHRyZWdpb246NjA5ZGZlM2ZjZDRjNGE4Njk0YWQ4ZmE1NzY4NDZjZWJfMTA5OTUxMTYzODY4Mw_ed4254a6-66af-4157-9f01-091a919daeca"
      unitRef="usd">158000</us-gaap:OperatingLeaseLeaseIncome>
    <us-gaap:GoodwillDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RleHRyZWdpb246Njc3MjEwN2MxZDQxNDBhYmJiYWM1YzBmN2IzNmFjNzRfMTI2NDQzODM3NTE3MTA_83d9ddd1-ffe4-49a9-a24b-e4ee95c8869f">Goodwill&lt;div style="margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:82.388%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.876%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;243,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1,009)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;242,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The significant decline in business levels resulting from the COVID-19 pandemic triggered a review of long-lived assets, including goodwill, for potential impairment during the three-month period ended June 28, 2020. Based upon this assessment, management concluded that the reporting unit fair value was not less than its carrying value, and therefore no goodwill impairment charge was recognized for the three-month and six-month periods ended June 28, 2020. Factors that management considered in this assessment included macroeconomic conditions, industry and market conditions, overall financial performance (both current and projected), changes in management or strategy, changes in the composition or carrying value of net assets, and market capitalization.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RleHRyZWdpb246Njc3MjEwN2MxZDQxNDBhYmJiYWM1YzBmN2IzNmFjNzRfMTA1_87d905a9-d203-4536-9a25-10ba38ace9ce">&lt;div style="margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:82.388%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.536%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.876%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;243,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1,009)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;242,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RhYmxlOjM3YTkzYWU0MjQ2OTQ4N2FiMDY1ZjA5ZmNkZDJmNTQ0L3RhYmxlcmFuZ2U6MzdhOTNhZTQyNDY5NDg3YWIwNjVmMDlmY2RkMmY1NDRfMC0yLTEtMS0w_f8f1be70-822c-4248-9022-876733b5d170"
      unitRef="usd">243445000</us-gaap:Goodwill>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RhYmxlOjM3YTkzYWU0MjQ2OTQ4N2FiMDY1ZjA5ZmNkZDJmNTQ0L3RhYmxlcmFuZ2U6MzdhOTNhZTQyNDY5NDg3YWIwNjVmMDlmY2RkMmY1NDRfMS0yLTEtMS0w_ab1f94c6-b9c4-4e2a-974c-d33f6dd4a0e6"
      unitRef="usd">-1009000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82MS9mcmFnOjY3NzIxMDdjMWQ0MTQwYWJiYmFjNWMwZjdiMzZhYzc0L3RhYmxlOjM3YTkzYWU0MjQ2OTQ4N2FiMDY1ZjA5ZmNkZDJmNTQ0L3RhYmxlcmFuZ2U6MzdhOTNhZTQyNDY5NDg3YWIwNjVmMDlmY2RkMmY1NDRfMi0yLTEtMS0w_a6be7055-7864-476c-8d75-5ff6abde7da9"
      unitRef="usd">242436000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTg0Nw_3488d278-42b7-4b5d-92b1-6b5e667b9423">Intangible Assets&lt;div style="margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Amortized intangible assets consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.561%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:50.276%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.418%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.534%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.418%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.534%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.420%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Distribution networks&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21,917&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;11,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,578&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,795&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,783&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;In-process technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;409&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;73,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;56,338&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Distribution networks&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,160&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;In-process technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;98&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;93,474&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;53,984&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;39,490&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The significant decline in business levels resulting from the COVID-19 pandemic triggered a review of long-lived assets, including intangible assets, for potential impairment during the three-month period ended June 28, 2020. 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded as the amount by which the carrying value of the asset exceeds its fair value.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Based upon this assessment, management concluded that certain of the Company's finite-lived intangible assets failed the recoverability test, and recorded impairment charges for these assets equal to the amount by which their carrying value exceeded their fair value. The Company also measured the fair value and recorded an impairment charge for its indefinite-lived intangible asset related to in-process technologies. The fair values were established, with the assistance of an outside valuation advisor, using the income approach based upon a discounted cash flow model that estimated future revenue streams and expenses attributable to those revenue streams provided by management.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;This review resulted in intangible asset impairment charges totaling $19,571,000 for the three-month period ended June 28, 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab Co. Ltd. ("Sualab") as a result of the deteriorating global economic conditions from the COVID-19 pandemic. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $10,070,000, $5,900,000, and $3,382,000, respectively. In addition, customer relationships acquired from EnShape GmbH that had a gross carrying value of $447,000 and accumulated amortization of $228,000 on the measurement date were reduced to zero, resulting in an impairment charge of $219,000.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;As of June&#160;28, 2020, estimated future amortization expense related to intangible assets was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:80.723%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:14.545%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Remainder of fiscal 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,272&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,902&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,697&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;15,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;In-process technology is an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.&lt;/span&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTg1Ng_70833472-534d-40cc-8902-80183952356b">&lt;div style="margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Amortized intangible assets consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.561%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:50.276%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.418%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.534%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.418%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.534%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.420%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Distribution networks&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21,917&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;11,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,578&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,795&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,783&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;In-process technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;409&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;73,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;56,338&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Distribution networks&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;9,160&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;In-process technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;98&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;93,474&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;53,984&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;39,490&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ie83c429fea4647eeb2ed34a6a4a00424_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMS0xLTEtMS0w_3608f463-b2e4-45fb-beaa-f401cc6e9f37"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ie83c429fea4647eeb2ed34a6a4a00424_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMS0zLTEtMS0w_f0c7d76d-992c-4432-9594-4d6f410761a0"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie83c429fea4647eeb2ed34a6a4a00424_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMS01LTEtMS0w_068ffc7a-af6b-4e79-b7ee-e779d4435af6"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMi0xLTEtMS0w_873a846f-b432-4fa2-939b-6832d5f3db2b"
      unitRef="usd">21917000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMi0zLTEtMS0w_bf4208b0-b1e9-47e0-ad26-00a2ed8af7a5"
      unitRef="usd">11035000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if2f37cdcfd3b49ccbc302967b7f90efd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMi01LTEtMS0w_bcde63f3-0255-4848-8f68-ada84aaa9e80"
      unitRef="usd">10882000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ia19541e3a9de4e59b3481c56398dfc07_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMy0xLTEtMS0w_1662e842-3af5-4433-b2a6-038225e17e62"
      unitRef="usd">10578000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ia19541e3a9de4e59b3481c56398dfc07_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMy0zLTEtMS0w_cc11429a-8f2b-4c88-afe6-6d66f96234a5"
      unitRef="usd">6795000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ia19541e3a9de4e59b3481c56398dfc07_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMy01LTEtMS0w_0c7f6af9-c3c9-4d5d-ae4b-7ba6be3cfde9"
      unitRef="usd">3783000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i1ce567eeb149442f9236fa3691572cf6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNC0xLTEtMS0w_66ddbb50-1e69-43d7-ad58-e642b81041f1"
      unitRef="usd">2300000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i1ce567eeb149442f9236fa3691572cf6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNC0zLTEtMS0w_406b877e-0c53-46d0-a51a-6c0738056e3a"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i1ce567eeb149442f9236fa3691572cf6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNC01LTEtMS0w_ddc3d90b-6a77-4a44-be6c-350966ae8361"
      unitRef="usd">2300000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i636ffc42e3da455abbb8e4da25901390_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNS0xLTEtMS0w_2a4c7dc1-5c0c-4415-aa32-4a265aebbd39"
      unitRef="usd">710000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i636ffc42e3da455abbb8e4da25901390_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNS0zLTEtMS0w_f2e4af28-1c74-42e6-bba5-9440fb8edb20"
      unitRef="usd">409000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i636ffc42e3da455abbb8e4da25901390_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNS01LTEtMS0w_7f4a2e73-010c-42b9-b363-e91879c354ec"
      unitRef="usd">301000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i18c3dda1c1274643908d3ec134b34bea_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNi0xLTEtMS0w_3cf37259-defc-4b97-8faa-9b9eac6fb9c4"
      unitRef="usd">110000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i18c3dda1c1274643908d3ec134b34bea_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNi0zLTEtMS0w_ec835f98-9cb5-43cf-83d9-d5de892cf606"
      unitRef="usd">39000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i18c3dda1c1274643908d3ec134b34bea_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNi01LTEtMS0w_48574998-ba69-4f6b-9562-19ae84a9cdeb"
      unitRef="usd">71000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNy0xLTEtMS0w_aed50d31-799b-408c-9e6b-c0eae421eaa5"
      unitRef="usd">73675000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNy0zLTEtMS0w_f419d6c2-b74b-4dfa-8701-52ae90f8f2e8"
      unitRef="usd">56338000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfNy01LTEtMS0w_21efc3e2-35c6-4bb4-abea-a8a8be2ea444"
      unitRef="usd">17337000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTAtMS0xLTEtMA_61b308f0-b6a8-4b0d-8d07-816e2ff1a3f3"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTAtMy0xLTEtMA_c3f183da-cb06-45a1-bc30-b819c7545146"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ic317eb91cedf4c5dbcd5cbe0d2cc9a9a_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTAtNS0xLTEtMA_7bdec4e0-78b7-432a-9944-06f959f87666"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTEtMS0xLTEtMA_38ae2136-a986-4e41-98a9-586c0cddceeb"
      unitRef="usd">31987000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTEtMy0xLTEtMA_0bf62401-5008-4e91-addb-fcf521c9e866"
      unitRef="usd">9160000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i5e3859c03dab4ddb8fbf16bf440ac5e1_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTEtNS0xLTEtMA_f6f4654e-65b2-4a8e-ba8b-7922a0b5ea17"
      unitRef="usd">22827000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i1a1a1e7625f040bba2f256af3ded829b_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTItMS0xLTEtMA_a1057608-d27c-4261-92d2-783b5c55d823"
      unitRef="usd">14407000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i1a1a1e7625f040bba2f256af3ded829b_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTItMy0xLTEtMA_74c10b96-7eb0-4836-bc77-9187331bca46"
      unitRef="usd">6402000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i1a1a1e7625f040bba2f256af3ded829b_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTItNS0xLTEtMA_8c0d85df-9ecc-4ac5-82e6-a421666b2c10"
      unitRef="usd">8005000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i5384f6f4408944488866d83556fdb79f_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTMtMS0xLTEtMA_662fdb1c-977b-4c13-9953-f595d0d4e46d"
      unitRef="usd">8200000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i5384f6f4408944488866d83556fdb79f_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTMtMy0xLTEtMA_58aca30f-1298-4283-b197-3cd3979fee41"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i5384f6f4408944488866d83556fdb79f_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTMtNS0xLTEtMA_d7037ddb-3994-4e56-8f0e-0f469ca841c9"
      unitRef="usd">8200000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i1f05ac941b69406b9637f7ccd30a80ef_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTQtMS0xLTEtMA_3414133b-ac2e-4258-aa84-9fdca8c689e1"
      unitRef="usd">710000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i1f05ac941b69406b9637f7ccd30a80ef_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTQtMy0xLTEtMA_b5f79cac-3179-412b-a09d-8acbd7390495"
      unitRef="usd">350000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i1f05ac941b69406b9637f7ccd30a80ef_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTQtNS0xLTEtMA_9e461c7f-6bb8-454e-a04e-db5045e74292"
      unitRef="usd">360000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ie48b0610188d40cc8ab1beab4a72816c_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTUtMS0xLTEtMA_a6165afc-3014-4088-b6e9-00025b23a7cd"
      unitRef="usd">110000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ie48b0610188d40cc8ab1beab4a72816c_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTUtMy0xLTEtMA_ef340946-1071-4021-9ed5-063d3e5db921"
      unitRef="usd">12000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie48b0610188d40cc8ab1beab4a72816c_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTUtNS0xLTEtMA_9622059c-a6bb-4bbf-bfc0-1193b656d0e5"
      unitRef="usd">98000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTYtMS0xLTEtMA_7e52ebd1-514b-4389-ba47-c47d2e8daeb6"
      unitRef="usd">93474000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTYtMy0xLTEtMA_4e26b678-f946-4d21-8492-bc2faf33feec"
      unitRef="usd">53984000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOjMwOWEzODZkZjkzNDRiZjg5MDY2MGMyMTI3ZTY2YWM4L3RhYmxlcmFuZ2U6MzA5YTM4NmRmOTM0NGJmODkwNjYwYzIxMjdlNjZhYzhfMTYtNS0xLTEtMA_7888d84b-ec82-4517-8656-9a021863d023"
      unitRef="usd">39490000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY2MDU5Mw_136851e4-bfdf-4efe-a00f-54030ed70db3"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i61b2208174334f058b8a75c11a91b001_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODg4NA_6d6e0690-dc94-45ad-9a0f-1336b1d5ad1d"
      unitRef="usd">10070000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i06b719aac978489cbc1fdfb106387690_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkwMA_6003ef5b-762d-4fdf-abca-f72ae48ace61"
      unitRef="usd">5900000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i1bd1a72b1d41496d8f37717244d55fae_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkxMw_7e3c4f61-21f0-4e51-b793-96a66a903bca"
      unitRef="usd">3382000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i36c6597aaabe4fe8a6a2385278ad7483_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkyNw_ff44435c-843b-4b02-adbb-3de0011b746f"
      unitRef="usd">447000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i36c6597aaabe4fe8a6a2385278ad7483_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODkzOQ_c07544b2-2bc8-4e4e-9905-bd2e4d8e61bb"
      unitRef="usd">228000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i144afef51ddb4238b254c1bef001d17c_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODk2MQ_393c7a64-cd25-4a48-a36f-de1f14703171"
      unitRef="usd">0</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i035c043ef297493cb2548f6c14daefae_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTA5OTUxMTY3ODk1MQ_29934055-256d-444c-8660-078bf2293337"
      unitRef="usd">219000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RleHRyZWdpb246ODk0YmRjMDRiYmVhNDM0YTk2NTBiOTU5NDQ1MmZhMGRfMTg1Mg_7c12074b-9f9f-4f9b-92b6-6aaadebc0413">&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;"&gt;As of June&#160;28, 2020, estimated future amortization expense related to intangible assets was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:80.723%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:14.545%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Remainder of fiscal 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,272&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,902&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,697&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,895&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;15,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfMS0yLTEtMS0w_9d219963-0cdb-486d-8e90-410f2e03c52a"
      unitRef="usd">1686000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfMi0yLTEtMS0w_11844df9-dcb2-4599-9d14-aa460740c372"
      unitRef="usd">3272000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfMy0yLTEtMS0w_b9d5d036-72ed-409f-8a9e-076f87f3b53b"
      unitRef="usd">2902000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNC0yLTEtMS0w_52aa4014-4580-4d4b-ade5-9c574502de26"
      unitRef="usd">2211000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNS0yLTEtMS0w_fd65a55c-a556-458d-9182-cf1bfeb6eeae"
      unitRef="usd">1697000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNi0yLTEtMS0w_e3a1cd09-652a-494f-b821-e0d2d70129c5"
      unitRef="usd">1374000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfNy0yLTEtMS0w_494f8545-403a-48e4-9994-5eb92f351fd3"
      unitRef="usd">1895000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie0d1820c9e7a471fb9ca24c97c40aecf_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82NC9mcmFnOjg5NGJkYzA0YmJlYTQzNGE5NjUwYjk1OTQ0NTJmYTBkL3RhYmxlOmMzZmU2ZjAzNTMyNDQ1NjA4NzY1MjY4ZTVjOTdkMjNjL3RhYmxlcmFuZ2U6YzNmZTZmMDM1MzI0NDU2MDg3NjUyNjhlNWM5N2QyM2NfOC0yLTEtMS0w_a6a108fb-e8ec-4972-8bf8-c1dab1e9d31f"
      unitRef="usd">15037000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:ProductWarrantyDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RleHRyZWdpb246NTg3ZDBjZTQ3Nzc4NDc2MDhjZWIxOWFhYjU2ZTVjYzNfMTAxNw_5eafe18e-8be3-4151-815a-97baacf4cf56">Warranty Obligations&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company records the estimated cost of fulfilling product warranties at the time of sale based upon historical costs to fulfill claims.  Obligations may also be recorded subsequent to the time of sale whenever specific events or changes in circumstances impacting product quality become known that would not have been taken into account using historical data.  While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of our component suppliers and third-party contract manufacturers, the Company&#x2019;s warranty obligation is affected by product failure rates, material usage, and service delivery costs incurred in correcting a product failure.  An adverse change in any of these factors may result in the need for additional warranty provisions. Warranty obligations are included in &#x201c;Accrued expenses&#x201d; on the Consolidated Balance Sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:79.871%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.129%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,493&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(927)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ProductWarrantyDisclosureTextBlock>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RleHRyZWdpb246NTg3ZDBjZTQ3Nzc4NDc2MDhjZWIxOWFhYjU2ZTVjYzNfMTAwOQ_92dc30ad-51ef-437f-b670-a5fb64eeeb62">&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:79.871%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.129%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,493&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(927)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ProductWarrantyAccrual
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfMC0xLTEtMS0w_76d5661e-d394-4e22-9719-6b32e94e0b92"
      unitRef="usd">4713000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfMS0xLTEtMS0w_227506de-10e8-41a4-ae66-d112959073ca"
      unitRef="usd">1493000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfMi0xLTEtMS0w_42a8aaa0-654b-4ffc-a0f0-80386a60b2db"
      unitRef="usd">927000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:ProductWarrantyAccrual
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl82Ny9mcmFnOjU4N2QwY2U0Nzc3ODQ3NjA4Y2ViMTlhYWI1NmU1Y2MzL3RhYmxlOjg4ZTg5YTk2OTU5OTQ5Mjg4OTVlNzczZTRhZmUyZDBhL3RhYmxlcmFuZ2U6ODhlODlhOTY5NTk5NDkyODg5NWU3NzNlNGFmZTJkMGFfNC0xLTEtMS0w_e40e4f96-e8f1-4745-a471-7cb2503c3afb"
      unitRef="usd">5279000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQ2Mg_dbc7ffce-8ac3-41dd-942e-614c064ac8b6">Derivative Instruments&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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.  Currently, the Company enters into economic hedges to manage this risk.  The economic hedges utilize foreign currency forward contracts with maturities of up to 45 days 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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:45.222%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.304%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:10.134%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.304%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.846%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Currency&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Notional&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;USD&lt;br/&gt;Equivalent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Notional&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;USD&lt;br/&gt;Equivalent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="12" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Korean Won&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;138,690,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;115,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;161,951,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;139,688&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Euro&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;56,137&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;20,249&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Mexican Peso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;184,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,051&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;80,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,223&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Japanese Yen&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;600,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;575,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,291&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Hungarian Forint&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,085,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;870,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;British Pound&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Taiwanese Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canadian Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Singapore Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;628&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.049%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:15.008%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.489%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.970%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.495%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sheet&lt;br/&gt;Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sheet&lt;br/&gt;Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Derivatives Not Designated as Hedging Instruments:&lt;br/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Prepaid&#160;expenses&#160;and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table presents 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:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:18.381%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.826%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.826%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.636%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.768%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.640%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net amount of assets presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Information regarding the effect of derivative instruments on the consolidated financial statements was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:21.313%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:23.953%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:10.903%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:10.903%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.730%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.999%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Location in Financial Statements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;60&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(439)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(8,180)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock>
    <us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1
      contextRef="i52434fd077654f68a8f6068def6a4808_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfNDY4_6d88eefd-d2ee-4811-a5c0-019cfe45b619">P45D</us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1>
    <cgnx:OutstandingForwardContractsTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQzOA_00ed2946-3da9-4efa-b18a-04dd5add8e56">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:45.222%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.304%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:10.134%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.304%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.846%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Currency&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Notional&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;USD&lt;br/&gt;Equivalent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Notional&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;USD&lt;br/&gt;Equivalent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="12" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Korean Won&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;138,690,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;115,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;161,951,500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;139,688&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Euro&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;56,137&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;20,249&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Mexican Peso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;184,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,051&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;80,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,223&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Japanese Yen&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;600,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;575,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,291&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Hungarian Forint&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,085,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;870,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;British Pound&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Taiwanese Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;42,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37,450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Canadian Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Singapore Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;628&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cgnx:OutstandingForwardContractsTableTextBlock>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i3d13b94b64c443f88f275cd93466c73e_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy0xLTEtMS0w_95b4fa78-efa5-4971-a360-ab21fbe89aae"
      unitRef="krw">138690000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i3d13b94b64c443f88f275cd93466c73e_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy0zLTEtMS0w_5a39b591-2eae-448a-9c4a-bea314923b37"
      unitRef="usd">115604000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i3ad2ace0eca940538df3133877e1ac52_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy01LTEtMS0w_e7db8738-49d5-4678-aa87-a8d84d261459"
      unitRef="krw">161951500000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i3ad2ace0eca940538df3133877e1ac52_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMy03LTEtMS0w_dd2404c3-bcae-4d31-9d8a-ee6cdb97b802"
      unitRef="usd">139688000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ie5803dec173141819033849ca19c6690_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC0xLTEtMS0w_b9d056ab-483e-4d62-b509-2836abf57c2f"
      unitRef="eur">50000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ie5803dec173141819033849ca19c6690_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC0zLTEtMS0w_fe1b4649-be7e-4de6-886f-1ca1fa31c623"
      unitRef="usd">56137000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ibed22609e15b4e6681439903fb4dfb17_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC01LTEtMS0w_b32ca758-ea9d-4e6c-b623-3be734808a16"
      unitRef="eur">18000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ibed22609e15b4e6681439903fb4dfb17_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNC03LTEtMS0w_2db0bf5e-7ea4-483b-80ad-a31a4d765fc6"
      unitRef="usd">20249000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i03deb9851e37488aa7e18c5b5a973ad0_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS0xLTEtMS0w_b02d7b83-82de-4d49-b240-3910a37c54fe"
      unitRef="jpy">184700000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i03deb9851e37488aa7e18c5b5a973ad0_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS0zLTEtMS0w_a803a3d2-bb98-4daa-b179-e7e0529e781a"
      unitRef="usd">8051000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ia34a7ab335404395a5a6468d1499242e_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS01LTEtMS0w_29ad7853-5586-4a52-82fa-55ce865a965d"
      unitRef="jpy">80000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ia34a7ab335404395a5a6468d1499242e_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNS03LTEtMS0w_c344d8e9-9704-43c1-a7ba-abbb48c31ae0"
      unitRef="usd">4223000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="idf51f16be7c64abc9393c4d0c69fa8c8_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi0xLTEtMS0w_ef6692b6-ae3f-464f-8510-b2a8215e64ca"
      unitRef="jpy">600000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="idf51f16be7c64abc9393c4d0c69fa8c8_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi0zLTEtMS0w_ef659493-d367-4fd4-a5cc-3b2d7967d857"
      unitRef="usd">5587000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i954f0b7df2b84ed6ac4c336e4218ad01_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi01LTEtMS0w_e1012afa-a9df-4f47-bf14-aacaae2c05e7"
      unitRef="jpy">575000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i954f0b7df2b84ed6ac4c336e4218ad01_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNi03LTEtMS0w_90dccddd-5b21-4940-acb2-f3a9c239a931"
      unitRef="usd">5291000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i0ac2e1f496f1499591debaa5712935eb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0xLTEtMS0yNTc5_ba6b4148-1d83-4d66-8c56-e86976bbf7c1"
      unitRef="jpy">1085000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i0ac2e1f496f1499591debaa5712935eb_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0zLTEtMS0yNTc5_5216f750-16f1-4909-b1bc-1de92aae91d0"
      unitRef="usd">3443000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="iadc04b1d29ad44db9ede836751e543c7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy01LTEtMS0yNTc5_d5a19c74-efe4-4a99-bbb2-51b736f541f3"
      unitRef="jpy">870000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="iadc04b1d29ad44db9ede836751e543c7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy03LTEtMS0yNTc5_ca1fc332-f79c-4225-9676-5caab9cecc6c"
      unitRef="usd">2962000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i6894568cee88443cb066c775905e6323_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0xLTEtMS0w_e2b2e1b4-6f86-4373-8499-c71dc28749a7"
      unitRef="jpy">1940000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i6894568cee88443cb066c775905e6323_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy0zLTEtMS0w_024cee84-18cf-45c7-9274-1de0ec285591"
      unitRef="usd">2406000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="id7570fd5e2974a659ce9ebb785ae3365_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy01LTEtMS0w_9421b945-340f-42bd-bf9d-1aaf7ac9bf76"
      unitRef="jpy">2700000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="id7570fd5e2974a659ce9ebb785ae3365_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfNy03LTEtMS0w_c9c4bb08-2980-445a-801f-2b0a9fdf6b82"
      unitRef="usd">3569000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i1b73edf6a49f4b94ae07c25974b211ec_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0xLTEtMS0yNTg2_d8d16e03-a5b5-4cdf-aa15-17c292144e03"
      unitRef="twd">42765000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i1b73edf6a49f4b94ae07c25974b211ec_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0zLTEtMS0yNTg2_85bd2fb2-b3ee-43e2-bef1-9adb2293e860"
      unitRef="usd">1455000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i36467e5f20c049afa2047642a807ca07_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS01LTEtMS0yNTg2_50d9a4fe-de75-4c41-aea4-5b4c35de168f"
      unitRef="twd">37450000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i36467e5f20c049afa2047642a807ca07_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS03LTEtMS0yNTg2_a971e046-030e-4259-8897-01af72c1f81e"
      unitRef="usd">1256000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ib2a6509c1e5e41a58c9916af202e1dd6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0xLTEtMS0w_5480673e-2cf0-409a-acec-9514daf29291"
      unitRef="cad">1130000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ib2a6509c1e5e41a58c9916af202e1dd6_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS0zLTEtMS0w_b36a6b8f-1ec2-4f11-a1a2-98e9ff36314c"
      unitRef="usd">827000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ic2e0750327a143a0abf3a34b12bff717_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS01LTEtMS0w_53dad113-8ad7-4faa-8dbd-b248bb06c79c"
      unitRef="cad">1300000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ic2e0750327a143a0abf3a34b12bff717_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfOS03LTEtMS0w_203aaafc-0437-4c24-a84d-c3163a5d8e30"
      unitRef="usd">1000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i3210059d0c934169b9bff4820113a080_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtMS0xLTEtMA_1851df77-59ad-4a05-9fae-0c9549546bbc"
      unitRef="sgd">1090000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i3210059d0c934169b9bff4820113a080_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtMy0xLTEtMA_29bceb0e-ce37-4278-8458-0515af38e599"
      unitRef="usd">784000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ia89b9a9abd2a403383c5bb5122616550_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtNS0xLTEtMA_a19ddd00-8d84-4ccb-a209-db1ed3131908"
      unitRef="sgd">845000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ia89b9a9abd2a403383c5bb5122616550_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmJkZjViYzM3YjAxYjRmNDNhZjFjN2RiMTVkMWFkODZiL3RhYmxlcmFuZ2U6YmRmNWJjMzdiMDFiNGY0M2FmMWM3ZGIxNWQxYWQ4NmJfMTEtNy0xLTEtMA_16d4d0d3-805f-496a-a1d6-9a44cf9e6967"
      unitRef="usd">628000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQzMw_73e666f1-76a3-48a7-a44a-f90c30b2c3c3">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.049%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:15.008%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.489%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:7.970%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.495%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sheet&lt;br/&gt;Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Sheet&lt;br/&gt;Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Derivatives Not Designated as Hedging Instruments:&lt;br/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Prepaid&#160;expenses&#160;and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock>
    <us-gaap:DerivativeAssets
      contextRef="i06aa76c6ba1f4c87b3a8d44c4b2e3844_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi0zLTEtMS0w_e8fd823e-2607-463a-861d-1fe7b69ca722"
      unitRef="usd">46000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="ie5e09ca76b6e456781fb8f68ccfc82df_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi01LTEtMS0w_ac6df1a9-eb6a-480b-a861-3a7388734ecc"
      unitRef="usd">857000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="ieb8511a4b6a44074b57b566b2eea1569_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi05LTEtMS0w_56520d89-57e1-4cca-bbc3-a12636e08066"
      unitRef="usd">458000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="idd70e8dc603e4b31a2d3b584eab61514_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOjMyNmFjMzU4N2MzYTRkOWQ5MjExMTcyZTRhYzQ2ZGQ0L3RhYmxlcmFuZ2U6MzI2YWMzNTg3YzNhNGQ5ZDkyMTExNzJlNGFjNDZkZDRfNi0xMS0xLTEtMA_936dd9b6-a59c-4221-adf4-d0d52d53b2ff"
      unitRef="usd">23000</us-gaap:DerivativeLiabilities>
    <us-gaap:OffsettingAssetsTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQ1Mg_8b9288e6-6485-474f-9b52-e532bf3a0ff6">&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table presents 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:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:18.381%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.826%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.826%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.636%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:16.768%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.662%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.640%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net amount of assets presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;857&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:OffsettingAssetsTableTextBlock>
    <us-gaap:DerivativeFairValueOfDerivativeAsset
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi0yLTEtMS0w_e367c3da-f1b8-428d-b8e7-a3e26c23101d"
      unitRef="usd">46000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeAsset
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi00LTEtMS0w_e863d971-b85a-4605-b31d-e0fa26d9e6ac"
      unitRef="usd">857000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi04LTEtMS0w_46698b5d-984f-4ef5-b9d5-1d7a29e0c858"
      unitRef="usd">458000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMi0xMC0xLTEtMA_67583fea-17fa-4a8d-af74-b4e4044ef25c"
      unitRef="usd">23000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy0yLTEtMS0w_629fe62c-1d0b-4066-993c-d7c148f9608c"
      unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy00LTEtMS0w_6935c031-dade-43bb-9b23-a3c60bd0671c"
      unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy04LTEtMS0w_72d94542-cd0a-4ea7-9a36-da6c8ef65446"
      unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfMy0xMC0xLTEtMA_8a3dec6f-8c4e-4c4b-b9ee-c2709041df18"
      unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeAssets
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC0yLTEtMS0w_9634574e-a2c2-4c5a-83b5-53c59d687026"
      unitRef="usd">46000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC00LTEtMS0w_d4036240-22c8-4d3c-bc03-5415682fea40"
      unitRef="usd">857000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC04LTEtMS0w_99f27f5a-baac-4ecb-a5b1-5bf2fc6387bf"
      unitRef="usd">458000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmFmMTBmOWM2OTU5ODQ5MmRiNmJjMzE4ZDdlMGJiOGZmL3RhYmxlcmFuZ2U6YWYxMGY5YzY5NTk4NDkyZGI2YmMzMThkN2UwYmI4ZmZfNC0xMC0xLTEtMA_c08a9b9d-75a1-4ec0-93f9-a443cd9706e2"
      unitRef="usd">23000</us-gaap:DerivativeLiabilities>
    <us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RleHRyZWdpb246ZGJkZTM0YzYxNzMxNDI5Yjg0NDk3NTU2YjAyNTc2M2JfMTQ1MQ_8e8e12a4-15d0-4df7-80a9-08d12919e96a">&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Information regarding the effect of derivative instruments on the consolidated financial statements was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:21.313%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:23.953%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:10.903%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:10.903%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:9.730%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.533%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:8.999%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Location in Financial Statements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;60&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(439)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(8,180)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="id0e2a9c3d94042afb732e0872efdfca6_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtMy0xLTEtMA_005fbe41-bd56-4983-bc2d-ba64449e9a0b"
      unitRef="usd">60000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="i3b0029c533124788896ad55afe18eae3_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtNS0xLTEtMA_1ce3cd40-305a-43f2-8c2c-49690bafab43"
      unitRef="usd">-439000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="i5bd2140e1d66490ab6f7339ef2eff581_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtNy0xLTEtMA_63bae132-f703-45a3-ace4-886cad089f57"
      unitRef="usd">-8180000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="i122b2de417f04d2d9a715ebc04773a49_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83MC9mcmFnOmRiZGUzNGM2MTczMTQyOWI4NDQ5NzU1NmIwMjU3NjNiL3RhYmxlOmRhMGRhZjc5OWZjZjQ0M2E4MjMxYjlkZDkxZDg4YjY3L3RhYmxlcmFuZ2U6ZGEwZGFmNzk5ZmNmNDQzYTgyMzFiOWRkOTFkODhiNjdfMTAtOS0xLTEtMA_04dc7d82-2466-42f1-a1b8-cae000a2d6c5"
      unitRef="usd">66000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyNw_e0c87ec2-b3a6-40cf-a811-84e089ad5edc">Revenue Recognition&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 upon the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:36.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.626%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Americas&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;68,966&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;77,408&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;129,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;142,178&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;35,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;59,620&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;84,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;119,158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Greater China&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;35,816&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;58,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;58,632&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other Asia&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;32,246&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;26,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;64,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;52,563&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;169,097&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;199,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;336,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;372,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:36.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.626%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Standard products and services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;158,807&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;173,368&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;311,662&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;334,420&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;25,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;24,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;169,097&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;199,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;336,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;372,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 Sheet and amounted to $10,888,000 and $3,963,000 as of June&#160;28, 2020 and December 31, 2019, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:3pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 potential credit losses.  Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing 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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On January 1, 2020, the Company adopted Accounting Standards Update (ASU) 2016-13, &#x201c;Measurement of Credit Losses on Financial Instruments,&#x201d;  using the modified-retrospective approach, which requires the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to retained earnings as of the beginning of the period in which the guidance is effective. The Company did not record an adjustment to retained earnings as this ASU did not have a material impact on the Company's consolidated allowance for credit losses. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:3pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company recorded credit losses on accounts receivable of $300,000 and $600,000 for the three-month and six-month periods ended June&#160;28, 2020, respectively.  The Company recorded credit losses on accounts receivable of $90,000 for the three-month and six-month periods ended June&#160;30, 2019. The Company's estimate of expected credit losses takes into account the deteriorating global economic conditions from the COVID-19 pandemic.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:3pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:78.441%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.559%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Write-offs &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(186)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;945&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:78.441%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.559%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,432&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Increases to deferred revenue and customer deposits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;57,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Recognition of revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(25,493)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(105)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46,738&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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, as our contracts have an original expected duration of less than one year.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyMA_8f320b57-a50f-42a9-9a7d-d938da3a5422">&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 upon the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:36.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.626%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Americas&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;68,966&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;77,408&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;129,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;142,178&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;35,987&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;59,620&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;84,569&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;119,158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Greater China&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31,898&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;35,816&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;58,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;58,632&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other Asia&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;32,246&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;26,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;64,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;52,563&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;169,097&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;199,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;336,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;372,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie3fd972f5b0b4967bf88d0e4de64b1e5_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi0yLTEtMS0w_3bce02f8-5272-47a0-8639-a149b765d084"
      unitRef="usd">68966000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="icd0edf20692d48dbbe6d886aa44e4d84_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi00LTEtMS0w_d69f1cbd-a0ca-478f-8d33-17c861836efd"
      unitRef="usd">77408000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia163194839f34b64a4b66b46db94b3d8_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi02LTEtMS0w_e2fc56ee-1195-4ba3-9ad7-61933beca752"
      unitRef="usd">129214000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1e754cc563fb403d81a3a6443bfadb43_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMi04LTEtMS0w_ce0c1b39-c738-49fe-87e8-ee7af8be39c3"
      unitRef="usd">142178000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5d22292744df4d90b9f2ce7b901b3753_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy0yLTEtMS0w_d3850f60-4c67-44d6-8cba-d1a16ca008f4"
      unitRef="usd">35987000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia1a183ea47fc4f63a7a2cc9f00e90e77_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy00LTEtMS0w_775d7c0e-8bfe-4992-8a50-2f2d8321703f"
      unitRef="usd">59620000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i150945a1664c4725b713b1051754f224_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy02LTEtMS0w_98e98f74-593b-4af3-a732-d6d128ad7ca0"
      unitRef="usd">84569000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i615c0a4086a840c7bc790f6a8a5f94d5_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfMy04LTEtMS0w_293de2d2-fae2-44d0-8e2b-a93aab7ef0a7"
      unitRef="usd">119158000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia92ee68fa1bf4f6e98ff25169ba78ae7_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC0yLTEtMS0w_b8e78b87-b741-499c-ad8e-214cb413e251"
      unitRef="usd">31898000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i08025680923a48a4b721007531ace7bd_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC00LTEtMS0w_66ab983f-c5e9-4699-b82d-d7ccb15e1651"
      unitRef="usd">35816000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i903458e444704eabbd9faea8afa62769_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC02LTEtMS0w_863e6e4d-b55a-4a3f-be44-d02b4649bd1b"
      unitRef="usd">58301000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i21e18f7d15034eefab74e871020222be_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNC04LTEtMS0w_0e6f17b1-ca92-43cb-a196-baaa855ef611"
      unitRef="usd">58632000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0b77066fbfca41f8855e5c3a31f6e128_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS0yLTEtMS0w_63c7a29b-3921-41d4-a80a-faf74525767c"
      unitRef="usd">32246000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8c231dd68f5f4ba7b246f0b6475c4492_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS00LTEtMS0w_ec64126b-6a51-4c8b-94ae-3be3f580267e"
      unitRef="usd">26203000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if2ea6ea03d6b41eca4e15a32e6db30e9_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS02LTEtMS0w_6910b8d8-4bbc-4166-a4b0-d5cdca122bd3"
      unitRef="usd">64248000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i694405d7706f467e94016e46a85639a2_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNS04LTEtMS0w_ecdd7d8b-5a37-4ce0-9034-6f837d7018fc"
      unitRef="usd">52563000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi0yLTEtMS0w_f2b53917-c4c6-414c-8471-9548019669f9"
      unitRef="usd">169097000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi00LTEtMS0w_878a33f5-a77f-42bf-aa07-f56de587555f"
      unitRef="usd">199047000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi02LTEtMS0w_95588641-0369-4941-81ba-fab800568e0d"
      unitRef="usd">336332000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjk0YWZhNWM1NmViYzRiNWRiNmI0NGQ2MzBkMmY3YTUwL3RhYmxlcmFuZ2U6OTRhZmE1YzU2ZWJjNGI1ZGI2YjQ0ZDYzMGQyZjdhNTBfNi04LTEtMS0w_9fecb071-d00b-48ae-8787-4040f2a5e093"
      unitRef="usd">372531000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyNA_091403fe-87a7-4fc6-8929-3b80d7e6bbd7">&lt;div&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:36.011%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.823%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.626%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Standard products and services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;158,807&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;173,368&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;311,662&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;334,420&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;25,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;24,670&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;38,111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;169,097&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;199,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;336,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;372,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i50380bb827a94448a6ac013d0bc30e84_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi0yLTEtMS0w_071eccb5-ffff-4d4c-90f2-5254c5476ba9"
      unitRef="usd">158807000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1a04c99690a04b70869650f81a2655ca_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi00LTEtMS0w_7df5d69a-7bec-4d3c-a64d-87818e534853"
      unitRef="usd">173368000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i55f5d87a128a4fc586b4d06d1292398c_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi02LTEtMS0w_d4c4378b-580b-4f5a-b5b7-a749014a2b01"
      unitRef="usd">311662000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iadca4fe23d914d9a90eadb8fc73e7efa_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMi04LTEtMS0w_2631a7f0-b093-4830-9c6c-39879fb7689d"
      unitRef="usd">334420000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib256bbe2ed3a4649983bf022671c4f27_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy0yLTEtMS0w_bd3b94d0-cb51-4239-9f12-fe961c40026b"
      unitRef="usd">10290000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1427b972f8194e9bb61bbdeb2ccd1d6a_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy00LTEtMS0w_67f8c277-364d-4457-8ca6-b4ae80313840"
      unitRef="usd">25679000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2cb65854f49c47899ae94365b923117c_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy02LTEtMS0w_4886030d-c1f9-4640-8fde-9626f178ab33"
      unitRef="usd">24670000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ice4024e721f04fb5b7084bc81e5ad7cd_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfMy04LTEtMS0w_d016cd76-d19d-4acc-8464-1679a4b2a3e8"
      unitRef="usd">38111000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC0yLTEtMS0w_ad39411c-726f-4de0-ab57-daa8be018242"
      unitRef="usd">169097000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC00LTEtMS0w_66359e6c-bc80-4aa5-818e-1caf2abf9be7"
      unitRef="usd">199047000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC02LTEtMS0w_75793f9c-e876-4043-858e-f22a3d6a4b16"
      unitRef="usd">336332000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOmIzNmQ2ZjcyYmJmMDQ1YjNhYjc2OTBiZGViNDM1YzE3L3RhYmxlcmFuZ2U6YjM2ZDZmNzJiYmYwNDViM2FiNzY5MGJkZWI0MzVjMTdfNC04LTEtMS0w_3325cf82-313a-47fa-9c7e-7910796cec21"
      unitRef="usd">372531000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CapitalizedContractCostGross
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfNDUx_abc4ab57-836c-4373-a83f-53a7802223fb"
      unitRef="usd">10888000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:CapitalizedContractCostGross
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfNDU4_79ba0fc2-7990-4098-8c60-019b7e09cba4"
      unitRef="usd">3963000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTc2MA_3845fea9-91f1-4f00-b540-722f1ea13091"
      unitRef="usd">300000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTA5OTUxMTYzMDIzNQ_2444b402-5b2f-4ce0-8e7e-943bd8ed0cbd"
      unitRef="usd">600000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTA5OTUxMTYzMDQ2Ng_10ffe13c-d17e-4ffc-a762-44c43186c088"
      unitRef="usd">90000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMTA5OTUxMTYzMDQ2Ng_7bd8b2e2-3aac-4ea9-ac61-b5f906282fc5"
      unitRef="usd">90000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyOA_2653ed9e-fe7e-4e09-b2ca-72676246972f">&lt;div style="text-align:justify;margin-top:3pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:78.441%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.559%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Write-offs &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(186)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;945&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMC0xLTEtMS0w_a63a6732-adf9-4f1e-8a1d-4d715b75e6ef"
      unitRef="usd">530000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMS0xLTEtMS0w_e9edffcd-f5c1-428c-9b0d-c73cdfc5508a"
      unitRef="usd">600000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMi0xLTEtMS0w_43a9763a-d48c-4cf0-9cb8-da36eebd445a"
      unitRef="usd">186000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfMy0xLTEtMS0w_16eccd03-bce9-4df9-b3ac-d5c53eda4cbf"
      unitRef="usd">1000</cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjZhZDI2M2U3MzgwODQyMWU5MmY2OTE2NTc3NzMxOGQ1L3RhYmxlcmFuZ2U6NmFkMjYzZTczODA4NDIxZTkyZjY5MTY1Nzc3MzE4ZDVfNC0xLTEtMS0w_5047e07e-87b8-4056-8102-3c1be63060f4"
      unitRef="usd">945000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:DeferredRevenueByArrangementDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RleHRyZWdpb246NjNkOTdmYzdiYWE2NDI5ZTg2NzlhMjY3YTAzMGU2NThfMjQyOQ_c0cc11b7-aacb-4879-b804-4447b0e4b5f3">&lt;div style="margin-top:3pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:78.441%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.559%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,432&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Increases to deferred revenue and customer deposits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;57,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Recognition of revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(25,493)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(105)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;46,738&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DeferredRevenueByArrangementDisclosureTextBlock>
    <us-gaap:DeferredRevenue
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMC0xLTEtMS0w_acca3e3e-86ed-46ab-8bc3-f4f5935a63eb"
      unitRef="usd">14432000</us-gaap:DeferredRevenue>
    <us-gaap:DeferredRevenueAdditions
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMS0xLTEtMS0w_3056ded7-ae37-449d-b6ff-bccc58d4edae"
      unitRef="usd">57904000</us-gaap:DeferredRevenueAdditions>
    <us-gaap:DeferredRevenueRevenueRecognized1
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMi0xLTEtMS0w_1fde023d-78d7-450b-9550-06efaf48ab5f"
      unitRef="usd">25493000</us-gaap:DeferredRevenueRevenueRecognized1>
    <cgnx:DeferredRevenueForeignCurrencyExchangeAdjustment
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfMy0xLTEtMS0w_4d1f4602-5812-4933-aea6-5e0aa5a01515"
      unitRef="usd">-105000</cgnx:DeferredRevenueForeignCurrencyExchangeAdjustment>
    <us-gaap:DeferredRevenue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83My9mcmFnOjYzZDk3ZmM3YmFhNjQyOWU4Njc5YTI2N2EwMzBlNjU4L3RhYmxlOjNiNjgxZGEwMjVlNDQ2Yzk5MmY5NDVmNjFhM2ZlM2QwL3RhYmxlcmFuZ2U6M2I2ODFkYTAyNWU0NDZjOTkyZjk0NWY2MWEzZmUzZDBfNC0xLTEtMS0w_d945c0a8-faf3-4e67-b225-4060a5bffeab"
      unitRef="usd">46738000</us-gaap:DeferredRevenue>
    <us-gaap:CompensationRelatedCostsGeneralTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzkwNQ_08d1066c-fd72-418c-a314-25b915dc9da5">Stock-Based Compensation Expense&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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").  As of June&#160;28, 2020, the Company had 16,335,000 shares available for grant 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:id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzk2_c9b27df8-2451-462e-927f-008a5aa7ff1c"&gt;four&lt;/span&gt; or five years based upon continuous service and expire ten years from the grant date.  RSUs generally vest upon three years of continuous employment or incrementally over such three-year period.  Participants are not entitled to dividends on RSUs. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:36.799%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.373%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.323%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.226%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.083%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&#160;(in&#160;years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Outstanding as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,899&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37.95&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;975&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;51.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1,822)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;26.47&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(421)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50.28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Outstanding as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;11,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.98&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;212,847&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Exercisable as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,331&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5.81&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;144,694&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Options vested or expected to vest as of June 28, 2020 (1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,683&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;39.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.85&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;204,795&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;&#160;(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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.327%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.626%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months&#160;Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Risk-free rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.43&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.43&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Risk-free rate&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The risk-free rate was based upon a treasury instrument whose term was consistent with the contractual term of the option.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Expected dividend yield&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Generally, the current dividend yield is 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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Expected volatility&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The expected volatility was based upon a combination of historical volatility of&#160;the Company&#x2019;s 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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;"&gt;Expected term&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The weighted-average grant-date fair values of stock options granted during the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $19.13 and $18.68, respectively. The weighted-average grant-date fair values of stock options granted during the six-month periods ended June 28, 2020 and June 30, 2019 were $18.52 and $18.59, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The total intrinsic values of stock options exercised for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $39,359,000 and $14,220,000, respectively.  The total intrinsic values of stock options exercised for the six-month periods ended June 28, 2020 and June 30, 2019 were $53,814,000 and $36,799,000, respectively. The total fair values of stock options vested for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $1,287,000 and $887,000, respectively. The total fair values of stock options vested for the six-month periods ended June 28, 2020 and June 30, 2019 were $37,951,000 and $30,859,000, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June 28, 2020: &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:64.520%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:14.812%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.938%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Nonvested as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;48.63&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;432&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;51.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(21)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50.54&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Nonvested as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;561&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50.79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The weighted-average grant-date fair values of RSUs granted during the three-month and six-month periods ended June 28, 2020 were $56.97 and $51.53, respectively.  There were no RSUs that vested during the three-month and six-month periods ended June 28, 2020.  There were no RSUs granted or vested during the three-month and six-month periods ended June 30, 2019.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company stratifies its employee population into two groups: one consisting of senior management and another consisting of all other employees.  The Company currently applies an estimated annual forfeiture rate of 7% to all stock-based awards for senior management and a rate of 12% for all other employees.  Each year during the first quarter, the Company revises its forfeiture rate.  This resulted in an increase to compensation expense of $1,787,000 in 2020 and a decrease to compensation expense of $499,000 in 2019.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;As of June&#160;28, 2020, total unrecognized compensation expense related to non-vested equity awards, including stock options and RSUs, was $65,128,000, which is expected to be recognized over a weighted-average period of 2.0 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 for the three-month period ended June&#160;28, 2020 were $8,018,000, which includes credits of $1,401,000 relating to grants cancelled as a result of the Company's workforce reduction, and $1,277,000, respectively, and for the three-month period ended June&#160;30, 2019 were $10,967,000 and $1,813,000, respectively. The total stock-based compensation expense and the related income tax benefit recognized for the six-month period ended June 28, 2020 were $22,808,000 and $3,841,000, respectively, and for the six-month period ended June 30, 2019 were $23,248,000 and $4,035,000, respectively. No compensation expense was capitalized as of June&#160;28, 2020 or December&#160;31, 2019.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.912%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.041%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;329&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;717&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Research, development, and engineering&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,401&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,550&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,767&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,017&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,808&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:CompensationRelatedCostsGeneralTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="ie90d730c1a5d4b67aae424e063c904d5_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjE3_d626f7ff-adde-41c8-8c2e-cb405ff689bf"
      unitRef="shares">16335000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i391830b02fb64117bcee6d7a82c55844_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfNDAy_027c5916-4eeb-4106-b1da-494ecdd977bf">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <cgnx:ExpirationPeriodOfStockOptionPlan
      contextRef="i78f7ce06fb6c4a8abe700d7761a911b6_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfNDQ2_567ace9b-ee56-481e-862c-a5a867b647d4">P10Y</cgnx:ExpirationPeriodOfStockOptionPlan>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i7bd2b61d8f8f46cc9ab61ef640de74bc_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfNDk2_7465cc31-0465-41ce-9dec-b5797a2501c2">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzg4Mg_63a3e34a-4af1-4e58-9c76-54f711ad6cb7">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:36.799%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.373%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.323%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.226%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.532%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.083%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&#160;(in&#160;years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Outstanding as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12,899&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37.95&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;975&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;51.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1,822)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;26.47&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(421)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50.28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Outstanding as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;11,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;40.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.98&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;212,847&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Exercisable as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,331&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;31.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5.81&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;144,694&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Options vested or expected to vest as of June 28, 2020 (1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,683&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;39.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.85&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;204,795&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;&#160;(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;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMS0xLTEtMS0w_3609c657-4f0f-4bfd-ae21-5c626b881aef"
      unitRef="shares">12899000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMS0zLTEtMS0w_e3afd702-0a45-411a-91d8-d062b81d9526"
      unitRef="usdPerShare">37.95</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMi0xLTEtMS0w_9412c403-e704-48df-9a81-364c2de22709"
      unitRef="shares">975000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMi0zLTEtMS0w_dab4bccf-8d1a-49e5-a20e-15fead277a0b"
      unitRef="usdPerShare">51.58</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMy0xLTEtMS0w_e838f14d-09d6-472b-8b12-756c15dff701"
      unitRef="shares">1822000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfMy0zLTEtMS0w_56de5967-4629-4ee1-a726-7e754ba77573"
      unitRef="usdPerShare">26.47</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNC0xLTEtMS0w_5db82225-5517-4a72-b57b-924b348bae46"
      unitRef="shares">421000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNC0zLTEtMS0w_644dcf2e-3d65-4b9d-9c56-8eb57e14567e"
      unitRef="usdPerShare">50.28</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS0xLTEtMS0w_c6dc03cd-3666-4ee1-9459-43c4cabc9b23"
      unitRef="shares">11631000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS0zLTEtMS0w_3db13321-f5f0-4f44-929a-0e329a813d3c"
      unitRef="usdPerShare">40.45</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS01LTEtMS0w_e28cc103-d32b-45dd-a9ae-f4b0cf65eacd">P6Y11M23D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNS03LTEtMS0w_c59f6748-1c0b-4308-b54f-ff77f076e89a"
      unitRef="usd">212847000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi0xLTEtMS0w_cbb97d3a-5437-4b27-a4c5-7bcbc027c133"
      unitRef="shares">5331000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi0zLTEtMS0w_c7c8a78f-70ae-4cde-9bd4-50b29c7adc2b"
      unitRef="usdPerShare">31.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi01LTEtMS0w_363d2c2d-6830-4e02-ab48-af3621e31425">P5Y9M21D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNi03LTEtMS0w_c78c062b-7eb9-4ef6-8ab2-d91561dd4f36"
      unitRef="usd">144694000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy0xLTEtMS0w_640a2e59-2383-4848-b465-1b6a19021b89"
      unitRef="shares">10683000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy0zLTEtMS0w_90b84edd-8add-494f-b91f-7ae5be8ec78b"
      unitRef="usdPerShare">39.58</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy01LTEtMS0w_76940349-a4bd-46bd-8af4-87f604b4eba3">P6Y10M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmU2ZDIwZjE2YWE3YjRkNjJiYzQxZGYyYmYwNGI5M2EyL3RhYmxlcmFuZ2U6ZTZkMjBmMTZhYTdiNGQ2MmJjNDFkZjJiZjA0YjkzYTJfNy03LTEtMS0w_be3ec026-ef2c-4169-a23b-5fa41718597c"
      unitRef="usd">204795000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzg3MA_3e258788-0002-4d22-a500-93e3be15818e">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.327%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.626%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months&#160;Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Risk-free rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.43&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.43&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;0.39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5.3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi0xLTEtMS0w_6682cfa0-f2a5-4388-927b-0cb6861da466"
      unitRef="number">0.016</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi0zLTEtMS0w_996d2cec-1d64-48e4-8bbe-131f19de2124"
      unitRef="number">0.027</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi01LTEtMS0w_fdecc1f5-0254-497d-8255-60d175d34049"
      unitRef="number">0.016</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMi03LTEtMS0w_de85d9b5-2c3f-46e4-87d3-008f7765c4cc"
      unitRef="number">0.027</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy0xLTEtMS0w_f4de3939-47fc-4c4c-a7b7-dce0126abb50"
      unitRef="number">0.0043</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy0zLTEtMS0w_929c66ab-400e-477f-a813-5236f5a044e7"
      unitRef="number">0.0039</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy01LTEtMS0w_5a4427db-ab23-4085-9e2a-eb30f138309b"
      unitRef="number">0.0043</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfMy03LTEtMS0w_f277086f-673c-446a-96a4-27ff49199b0e"
      unitRef="number">0.0039</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC0xLTEtMS0w_17fbf144-9392-4197-b8c9-b86ed3423360"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC0zLTEtMS0w_0097e889-d6d0-4123-b7c0-3beb5e9d491d"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC01LTEtMS0w_5ec94720-8cb6-4a5d-9913-d31e27205368"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNC03LTEtMS0w_c864ae43-1e85-4f18-b121-e5ab0ad56690"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS0xLTEtMS0w_589d5604-2ba4-44fa-a447-377789b0159f">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS0zLTEtMS0w_5e696186-445e-47d3-af51-74127fb91676">P5Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS01LTEtMS0w_2407ffc3-5e41-4412-bca8-06d05b0d4c1f">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjU1OTBhNDU4N2Y5NzRiZTJiZDQwZGYxNzEwNDVhNDg2L3RhYmxlcmFuZ2U6NTU5MGE0NTg3Zjk3NGJlMmJkNDBkZjE3MTA0NWE0ODZfNS03LTEtMS0w_ca7b5064-00f3-49ef-8eb3-738897e62598">P5Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTk2Nw_9a00b492-84ca-4716-b423-c74674656f3f"
      unitRef="usdPerShare">19.13</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTk3NA_6fcfb2bc-50f5-4e0a-9564-28f2b79b800b"
      unitRef="usdPerShare">18.68</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjk1OA_e7585c21-cad2-41fc-b6c2-134f1569b7fb"
      unitRef="usdPerShare">18.52</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMTg5OQ_26fb5699-2991-47a9-b753-15afec8f10fa"
      unitRef="usdPerShare">18.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjA5Ng_e4aff4c2-f776-4b5f-abe2-04d78baf172c"
      unitRef="usd">39359000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjEwMw_c8a985d8-efa8-4e00-be7c-af5e784d4ed4"
      unitRef="usd">14220000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjA2Mw_69f92b07-7793-4eca-97c5-3c92c4b9a6e1"
      unitRef="usd">53814000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjA2NQ_8030a598-ea99-4c09-ba76-c26727bed2f2"
      unitRef="usd">36799000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjIxNw_f8c7579b-b2dd-43e7-8b3d-9399914b2522"
      unitRef="usd">1287000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjIyNA_71de4057-1a72-436e-85a8-2cac9421f176"
      unitRef="usd">887000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjI1Mg_2066ad94-ab7b-4727-8ea8-4616fe88d160"
      unitRef="usd">37951000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjI1NA_cbd4f12c-a7c4-4613-8648-2beaca513b15"
      unitRef="usd">30859000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzg3OQ_7ed19c61-6478-41f2-ad92-a6398fc052df">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June 28, 2020: &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:64.520%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:14.812%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.938%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Nonvested as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;48.63&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;432&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;51.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(21)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50.54&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Nonvested as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;561&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;50.79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i9e0c96315b424e56924808a79a15e591_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMS0xLTEtMS0w_68a7d926-b781-4d6b-b911-e3587523d1cf"
      unitRef="shares">150000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i9e0c96315b424e56924808a79a15e591_I20191231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMS0zLTEtMS0w_52db9227-6acb-44fc-92b8-f1d40efd839d"
      unitRef="usdPerShare">48.63</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMi0xLTEtMS0w_28d7a5cb-d397-4841-9532-c02d78ad97d6"
      unitRef="shares">432000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMi0zLTEtMS0w_eb6f1e66-cb2f-4e9a-b2d4-cfa289450724"
      unitRef="usdPerShare">51.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMy0xLTEtMS0w_058fbd42-ddd6-44f9-82ad-8df66b06b09f"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfMy0zLTEtMS0w_bf7de766-324f-45d0-ad2d-67ff3e5bd7a5"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNC0xLTEtMS0w_903cf674-6a54-4517-816c-cf8676e796e8"
      unitRef="shares">21000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNC0zLTEtMS0w_7a3b77b4-73a8-4e5f-9836-9955d295ba0e"
      unitRef="usdPerShare">50.54</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i8ee7be1a6ecf4ed7815ed69f7dac42cd_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNS0xLTEtMS0w_deb239fd-7a98-41ec-811f-615de12f6dfd"
      unitRef="shares">561000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i8ee7be1a6ecf4ed7815ed69f7dac42cd_I20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOmViODU2ZDExY2RiMDRiNjJhZTE1NWJmZmQ0ZjBhZDVhL3RhYmxlcmFuZ2U6ZWI4NTZkMTFjZGIwNGI2MmFlMTU1YmZmZDRmMGFkNWFfNS0zLTEtMS0w_b6aecb41-4492-4550-89ba-f203547baa0d"
      unitRef="usdPerShare">50.79</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ib8b0bf2a77834ce88571dd01f83e0cca_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjQ5OA_be0f507f-9275-4a9e-9337-68527350f04c"
      unitRef="usdPerShare">56.97</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjUyOA_1b5794a7-3d66-4f82-bfc0-56c1281eeb52"
      unitRef="usdPerShare">51.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i94e6f42272a044b984e9c58a2a991cab_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjUxNA_924a1164-592b-4405-848c-666b68686a39"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i55b074489f724905bac5ce61e111c0c8_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjU5OA_c3715082-0051-4f6a-85f9-bab87f1bd5c7"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <cgnx:NumberOfGroupsWithinEmployeePopulation
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjc2MQ_f9c0e007-fc41-40a7-878b-09e1d08a4546"
      unitRef="group">2</cgnx:NumberOfGroupsWithinEmployeePopulation>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjkyNQ_8805c26c-0ac2-4198-8002-a2aa80d2b7bb"
      unitRef="number">0.07</cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMjk4NQ_764542b9-c1d4-4966-ab2e-be4feaea3ffd"
      unitRef="number">0.12</cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement>
    <cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzE0OA_708e6148-71bd-4349-b03a-993f2cc241a4"
      unitRef="usd">1787000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzIwMQ_6a126689-771d-4729-a068-38b134b5a788"
      unitRef="usd">499000</cgnx:IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzMzOA_7388dc87-8d4f-4433-88ae-6ab623704df3"
      unitRef="usd">65128000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <cgnx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzQxMQ_93fd8278-3d7d-4292-9334-7fa770a5e2cc">P2Y</cgnx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzU1MQ_6ad304f9-3dde-495a-b4aa-1a5fc89a62d2"
      unitRef="usd">8018000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTY0OTI2NzQ0NzUwMg_b1b9d5d9-ffdd-4985-adaa-47c7dc5826bc"
      unitRef="usd">1401000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzU1OA_39a3cea2-8d89-412f-b315-527c958bdd45"
      unitRef="usd">1277000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzYyMQ_c944bf3c-103d-409b-842f-d2a1a56bf92e"
      unitRef="usd">10967000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzYyOA_61420db9-e879-4bb9-8087-53a057694017"
      unitRef="usd">1813000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyMQ_8b58ae1f-fc98-41b0-ab73-3f9b4f1f4ce7"
      unitRef="usd">22808000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyMg_28c31e6c-2afe-43fe-bad9-d1e476a619ea"
      unitRef="usd">3841000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyNQ_98a610f8-a53f-488c-87a1-f10371366756"
      unitRef="usd">23248000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMTA5OTUxMTYzMjgyNg_28779737-dfa7-49c1-9140-56c91073b255"
      unitRef="usd">4035000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzY0Ng_1ed4be07-8889-4451-819f-e7e9f712b8d8"
      unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzkwOA_56466aaa-40cc-4e8e-8866-0e006b966607">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.912%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.041%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;329&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;717&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Research, development, and engineering&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2,401&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,550&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,767&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,017&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;8,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;22,808&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;23,248&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i06a9f689529d44ea9723e6cc0ac766fa_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi0xLTEtMS0w_4e188427-fcff-4e3e-b9bf-c41b400d9751"
      unitRef="usd">363000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i2ef068d8c3c14069905ba89e9a6b5eaa_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi0zLTEtMS0w_a2fdefcc-1994-4aaa-aac9-2a8eae3617dc"
      unitRef="usd">329000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if63a5b3ff51747a7acf2b9763080259c_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi01LTEtMS0w_353d08d3-9576-4bba-884a-a0bcc942cf6c"
      unitRef="usd">717000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i8510b9a70cf64f7fbdd4bcffe5856f2d_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMi03LTEtMS0w_efb68a27-9271-4e89-bb4d-4fe10333dd7f"
      unitRef="usd">780000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ie7d349cddf79450fb7ec61b59469955c_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy0xLTEtMS0w_905c2725-6d4b-48b6-8acf-1fcba17957e4"
      unitRef="usd">2401000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ie522880486f84d7595b434ed962eacd6_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy0zLTEtMS0w_d8849fc7-7938-4857-9476-83c6503c0e46"
      unitRef="usd">3550000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i1549c24baeea47a0b54ff9b987a12358_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy01LTEtMS0w_e37cfe48-b98b-42a4-9193-bd5ec914e579"
      unitRef="usd">7767000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ibb66e794d1264711afdf4f25a22af3de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfMy03LTEtMS0w_7e9838b2-76c3-4b70-acbf-ddfabcbf6f1c"
      unitRef="usd">8017000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i5f0dde5ff23b474383f628184c115137_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC0xLTEtMS0w_15d277d1-1419-4a54-be69-58e82decc6da"
      unitRef="usd">5254000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i0bcda0824b2844a28394aaae0d03e9d3_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC0zLTEtMS0w_78cbb6a9-0669-4431-9286-d43a25cacda9"
      unitRef="usd">7088000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i2f37aff1307a4ab9be50829bdda812dc_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC01LTEtMS0w_d9ef8f3b-0223-443f-b982-2d52d09133b0"
      unitRef="usd">14324000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ibe0b75c6204c46e9b19b07d490ffda88_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNC03LTEtMS0w_d723e5f4-2713-44d2-8765-71fbdb8afd12"
      unitRef="usd">14451000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS0xLTEtMS0w_34c8bfe1-2486-43fd-8d21-e21451ff3402"
      unitRef="usd">8018000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS0zLTEtMS0w_a050f8cb-6371-4f4d-ae64-8ba2e9f7cc26"
      unitRef="usd">10967000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS01LTEtMS0w_0dec35a7-7737-49aa-97bc-76c5315383ec"
      unitRef="usd">22808000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RhYmxlOjMyNDkzZjVmNmMzZjQ4YmZhNTgwNDMxMzg5MDJhMmQ0L3RhYmxlcmFuZ2U6MzI0OTNmNWY2YzNmNDhiZmE1ODA0MzEzODkwMmEyZDRfNS03LTEtMS0w_4b699fce-96d7-4775-8405-f16c2798d38d"
      unitRef="usd">23248000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTM3NDM4OTUzNDg2NDM_2a85669c-4a12-4f55-bed3-78c4e24ae11b">Stock Repurchase ProgramIn October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock.  As of June&#160;28, 2020, the Company repurchased 2,816,000 shares at a cost of $121,348,000 under this program, including 1,215,000 shares at a cost of $51,036,000 during the three-month period ended March 29, 2020, leaving a remaining balance of $78,652,000. No shares were repurchased during the three-month period ended June 28, 2020. On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock.  Purchases under this March 2020 program will commence upon completion of the October 2018 program.  The Company may repurchase shares under these programs in future periods depending upon a variety of factors, including, among other things, the impact of dilution from employee equity 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.</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="i979d000c5483415184aa8b9629ee1c46_I20181029"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTE4_03bd4148-33fc-49be-b068-434438855f88"
      unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <cgnx:StockRepurchaseProgramAggregateNumberofSharesRepurchased
      contextRef="i5cde25447c244a5a90a1b77b05f9c5f1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTg3_d07da46c-4deb-4670-a207-1cc760d59f45"
      unitRef="shares">2816000</cgnx:StockRepurchaseProgramAggregateNumberofSharesRepurchased>
    <cgnx:StockRepurchaseProgramValue
      contextRef="i5cde25447c244a5a90a1b77b05f9c5f1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMjEw_1eb0bd00-7a68-4c56-b951-4dee78fbd62f"
      unitRef="usd">121348000</cgnx:StockRepurchaseProgramValue>
    <cgnx:StockRepurchaseProgramAggregateNumberofSharesRepurchased
      contextRef="i0097f887461345248832cb36df04c1cd_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTY0OTI2NzQ0Mjg1OQ_0be73ff7-1caa-4caf-8059-1098a65dae99"
      unitRef="shares">1215000</cgnx:StockRepurchaseProgramAggregateNumberofSharesRepurchased>
    <cgnx:StockRepurchaseProgramValue
      contextRef="i0097f887461345248832cb36df04c1cd_I20200329"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMTA5OTUxMTYyODkwMg_c3096c71-0190-4023-9473-cb23a01aeebc"
      unitRef="usd">51036000</cgnx:StockRepurchaseProgramValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfMzQw_6081def5-87ee-41c4-8249-e7b88459355b"
      unitRef="usd">78652000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="i5d0c9481bd7d4ef49f533e75018c9e9b_I20200312"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84Mi9mcmFnOjNiN2U3Y2Q5NmJmYzRiYzdiYjAyYmU4MTZjNDQ0YTJhL3RleHRyZWdpb246M2I3ZTdjZDk2YmZjNGJjN2JiMDJiZTgxNmM0NDRhMmFfNDM5_1fbd0fe0-e966-46ff-993c-abf9b2e96811"
      unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYzMg_f3713924-b033-4f28-8e9e-7f6526b0a5b2">Taxes&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;A reconciliation of the United States 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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:41.128%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.888%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.450%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.888%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.456%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months&#160;Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income tax expense (benefit) at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(21)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Tax credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Discrete tax benefit related to stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(191)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(29)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Discrete tax expense related to tax return filings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Tax rate adjustment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(51)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company is tax resident in numerous jurisdictions around the world and has identified its major tax jurisdictions as the United States, Ireland, and China.  The statutory tax rate is 12.5% in Ireland and 25% in China, 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 5 percentage points&lt;/span&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;"&gt; &lt;/span&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;for both the three-month and six-month periods ended June 28, 2020, and 7 percentage points for the same periods in 2019. 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.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company recorded discrete tax benefits arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock exercises that resulted in a favorable impact to the effective tax rate of 191 and 29 percentage points for the three-month and six-month periods ended June 28, 2020, respectively, and 2 and 4 percentage points for the same periods in 2019. In addition, the Company recorded discrete tax expenses related to the final true-up of the prior year tax accrual upon filing the related tax return that resulted in an unfavorable impact to the effective tax rate of 141 and 17 percentage points for the three-month and six-month periods ended June 28, 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:5pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Excluding the impact of these discrete items, the Company&#x2019;s effective tax rate was a benefit of 1% of pre-tax loss and an expense of 19% of pre-tax income for the three-month and six-month periods in 2020, respectively, compared to an expense of 17% and 16% of pre-tax income for the same periods in 2019.  The increase in the effective tax rate, excluding the impact of discrete items, for the six-month period from 16% in 2019 to 19% in 2020 was due to more of the Company's profits being earned and taxed in higher tax jurisdictions. This adjustment to the effective tax rate resulted in an 18 percentage-point impact on the effective tax rate for the three-month period ended June 28, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;During the six-month period ended June&#160;28, 2020, the Company recorded a $710,000 increase in reserves for income taxes, net of deferred tax benefit.  Estimated interest and penalties included in these amounts totaled $283,000 for the six-month period ended June&#160;28, 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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 $13,330,000 as of June&#160;28, 2020, which included $12,302,000 classified as a non-current liability and $1,028,000 recorded as an increase to a non-current deferred tax liability.  The amount of gross interest and penalties included in these balances was $1,301,000.  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.&lt;/span&gt;&lt;/div&gt;The Company has defined its major tax jurisdictions as the United States, Ireland, and China, and within the United States, Massachusetts.  Within the United States, the tax years 2016 through 2019 remain open to examination by the Internal Revenue Service ("IRS") and various state tax authorities.  The tax years 2015 through 2019 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. The Company has recently been notified that it is under audit by the IRS for the tax year 2017. Management believes the Company is adequately reserved for this audit.</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYyMw_30375fac-0abc-41c0-ad89-8ef3a2d0d483">&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;A reconciliation of the United States 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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:41.128%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.888%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.450%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.888%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.456%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months&#160;Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income tax expense (benefit) at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(21)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Tax credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Discrete tax benefit related to stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(191)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(29)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Discrete tax expense related to tax return filings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Tax rate adjustment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(51)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi0xLTEtMS0w_795e8c7c-77ea-4993-974e-5d94fa9a2a77"
      unitRef="number">-0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi0zLTEtMS0w_75a64ce7-16b8-4aac-a2da-98c67dc6a4fe"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi01LTEtMS0w_cc420eef-338a-4ba5-adad-086880fd4507"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMi03LTEtMS0w_a293897b-cec0-4e91-ab07-c23f06c90a6a"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy0xLTEtMS0w_ae4e3239-d06c-4154-854b-d406dece2fb2"
      unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy0zLTEtMS0w_ad275c88-1e1e-4f38-a872-41d0a7d5860c"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy01LTEtMS0w_49186dea-2b3b-4df0-bfa2-465e521850dc"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMy03LTEtMS0w_910994e4-cf15-4a91-a645-2f807601645d"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC0xLTEtMS0w_462f0a30-25fb-4983-9973-a23ae59e3dbd"
      unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC0zLTEtMS0w_7b690ebc-a726-4d3b-82cd-c4ca23e9444a"
      unitRef="number">-0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC01LTEtMS0w_eb3d1efd-911f-4af6-9a7e-00d7e114fc37"
      unitRef="number">-0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNC03LTEtMS0w_17121660-7d09-4a9a-8993-b60533b374be"
      unitRef="number">-0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS0xLTEtMS0w_e35e2934-bd3d-4150-900e-6348a0ccf3ac"
      unitRef="number">-0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS0zLTEtMS0w_4bf4252b-ea94-4108-a706-9bd4a748b5c2"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS01LTEtMS0w_39f1bac5-d7e1-4771-a308-b4e6b52d3949"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNS03LTEtMS0w_dc49a246-ec8a-455b-af3f-68302435036c"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy0xLTEtMS0w_e1f6f751-7aaa-4fd6-94a8-677051588946"
      unitRef="number">1.91</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy0zLTEtMS0w_d2170d50-3c76-457b-a262-6353275aaf60"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy01LTEtMS0w_be19611d-3540-4f50-8462-31f8a6155121"
      unitRef="number">0.29</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfNy03LTEtMS0w_b35b7cc8-5b85-4c3e-8eee-599c7b7dc163"
      unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC0xLTEtMS0w_0d93e2db-0910-45d0-8b67-10b31472d228"
      unitRef="number">1.41</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC0zLTEtMS0w_d4262412-98b5-4a3c-9bbc-cf05707d3d3d"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC01LTEtMS0w_72f09d18-abd7-4dd7-a6fd-8da0b4427f0a"
      unitRef="number">0.17</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOC03LTEtMS0w_0278f3af-5a6d-4012-925d-9d469c652a09"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0xLTEtMS03OTU1_57ef8037-7c9a-4112-830c-6117f9b23186"
      unitRef="number">0.18</cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0zLTEtMS03OTU1_10709673-688a-46db-9c22-0784c2d6dd8d"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS01LTEtMS03OTU1_56118592-370e-41cc-bbe6-74b574ee9377"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS03LTEtMS03OTU1_43eb9569-e471-4fcd-92a7-12fd2c658bfd"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0xLTEtMS0w_4a060a00-0418-4c65-b55b-ac74bb347729"
      unitRef="number">-0.04</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS0zLTEtMS0w_63917600-fc80-46f8-93d0-ff94fc849458"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS01LTEtMS0w_fd74c040-141f-4a62-bbc7-8f6a94204127"
      unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfOS03LTEtMS0w_62b7e6a0-6ea9-4a06-a2df-e6e5e8cb68a5"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtMS0xLTEtMA_6671856d-0958-435d-a4ea-af03f66d24ae"
      unitRef="number">-0.51</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtMy0xLTEtMA_cb8c0012-1b6c-45b1-82b9-e09b98245232"
      unitRef="number">0.14</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtNS0xLTEtMA_f82d1e1e-72c3-466b-b76b-b0e9304b30f1"
      unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RhYmxlOjIzYWZhMmFhODM3OTQ4M2Q4NWE4NTg3OTUzMWNiMjM1L3RhYmxlcmFuZ2U6MjNhZmEyYWE4Mzc5NDgzZDg1YTg1ODc5NTMxY2IyMzVfMTAtNy0xLTEtMA_b0752b4b-072d-4284-bb4b-0220cf687931"
      unitRef="number">0.12</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i7a9496e00eaf4823b5faa46ab099e121_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMzY3_d142506e-4462-40da-89d5-15bd3f961da8"
      unitRef="number">0.125</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i49d1dd25fc2b4d3abb5872982813204c_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMzg1_dc199b8e-bec3-4b6f-95a3-06f625b60121"
      unitRef="number">0.25</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i7746c332c79744f58927e204e4f386b3_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfNDU5_57a2d6b0-957d-49d0-84b5-58e8738e705b"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfNTMz_5a5e1edf-da40-4e38-889d-b7196cab51ad"
      unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfNTMz_d5dc5369-230d-457f-814e-84f40161bf73"
      unitRef="number">-0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzMDczOQ_8f8f625e-77d7-4a2e-b806-500e31be7a9a"
      unitRef="number">-0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzMDczOQ_c7d5e104-c97b-4004-9fcb-c671b391deed"
      unitRef="number">-0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTEwOQ_1d54fde5-5a58-45ca-b0e0-9ccf2e26ca5e"
      unitRef="number">1.91</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTM3NDM4OTUzNTYzMDk_04ba84cc-1d7f-4876-abcc-5ad7b8245e3c"
      unitRef="number">0.29</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTExNg_f5b8de01-c19e-4d04-97c0-ce6360d083b1"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjE3NQ_f6f9daef-125d-4f45-a49c-cbffd062f19c"
      unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjE1OA_996ec8d8-323e-4b16-b02a-22ab5fc85ffd"
      unitRef="number">1.41</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjE2NA_6053cb09-c6f3-4429-924c-3a08b525a014"
      unitRef="number">0.17</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
    <cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwMg_a00682fe-01f1-44fb-9e4c-17f439d933a6"
      unitRef="number">-0.01</cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwMw_ec30ef5d-f3b9-42be-a997-b6ab673dd80f"
      unitRef="number">0.19</cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNA_ddb8750d-cb05-4eb8-beb9-5c871345038e"
      unitRef="number">0.17</cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNQ_942d6b31-4e38-431a-ab3f-6b5ec0b9abd6"
      unitRef="number">0.16</cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNg_bb4f9f05-8210-4792-94af-604ce15bfaa5"
      unitRef="number">0.16</cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNTUwNw_b5d76609-99dc-447f-acd7-ac7b09166837"
      unitRef="number">0.19</cgnx:EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTA5OTUxMTYzNjIyMw_c95b0ee8-335f-41a7-a4f9-0c20697dbded"
      unitRef="number">0.18</cgnx:EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent>
    <us-gaap:IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTI1Ng_a54bdbda-98fe-4f03-a6d6-46d9ff6a2186"
      unitRef="usd">710000</us-gaap:IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear>
    <cgnx:IncreaseDecreaseInterestAndPenalties
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTM5NQ_84e87ab7-82ba-4171-b940-0b95bc18312b"
      unitRef="usd">283000</cgnx:IncreaseDecreaseInterestAndPenalties>
    <cgnx:LiabilityForUncertainTaxPositions
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTUxNg_c4c4b27c-0e86-4c0f-be1b-d748a0856ce7"
      unitRef="usd">13330000</cgnx:LiabilityForUncertainTaxPositions>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTU0NA_45a4126d-0f0a-472b-b26b-673f031997b3"
      unitRef="usd">12302000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTU4OQ_66b1112d-a9eb-4e8c-9cd6-1e8c2ee43fdc"
      unitRef="usd">1028000</cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMTczMg_b152a395-c995-4134-98c1-6ff4153a714c"
      unitRef="usd">1301000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <cgnx:TaxyearsopentoexaminationbyInternalRevenueService
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYxNg_bea52ecd-164f-4cf7-911d-339e0486bc6b">2016 through 2019</cgnx:TaxyearsopentoexaminationbyInternalRevenueService>
    <cgnx:IncomeTaxExaminationYearsUnderExaminationOtherEntities
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl84NS9mcmFnOjY0ODQ0ZDBjMzgwMzQzMjk4OGRkZjMxNTlmZDJmM2YxL3RleHRyZWdpb246NjQ4NDRkMGMzODAzNDMyOTg4ZGRmMzE1OWZkMmYzZjFfMjYzMw_c4f1f462-befa-4621-b0c2-639dbcbbb611">2015 through 2019</cgnx:IncomeTaxExaminationYearsUnderExaminationOtherEntities>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfNTcy_18561928-e67f-4655-a44e-af7423379091">Weighted-Average Shares&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.912%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.181%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.479%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;171,318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;171,209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Effect of dilutive equity awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,154&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,319&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;175,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;175,499&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;175,528&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Stock options to purchase 5,801,000 and 6,328,000 shares of common stock, on a weighted-average basis, were outstanding during the three-month and six-month periods ended June&#160;28, 2020, respectively, and 6,113,000 and 5,503,000 for the same periods in 2019, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 27,000 and 14,000 shares of common stock, on a weighted-average basis, were outstanding during the three-month and six-month periods ended June&#160;28, 2020. Additionally, because the Company recorded a cumulative net loss during the three-month period ended June 28, 2020, potential common stock equivalents of 3,120,000 were not included in the calculation of diluted net loss per share for this period. There were no anti-dilutive restricted stock units outstanding, on a weighted-average basis, during the three-month and six-month periods ended June 30, 2019, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfNTYx_dfe60fe6-c275-4840-ae65-4c90db55c0d0">&lt;div style="margin-top:6pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.912%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.181%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.619%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.530%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.479%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Three-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Six-months Ended&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;June 30, 2019&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;171,318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;171,209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Effect of dilutive equity awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,154&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;4,319&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;172,283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;175,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;175,499&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;175,528&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi0xLTEtMS0w_95444f9d-3443-4be0-be49-24c34806cd4b"
      unitRef="shares">172283000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi0zLTEtMS0w_bc8fc8f8-3389-4bb5-94ea-52bba8c9f15c"
      unitRef="shares">171318000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi01LTEtMS0w_58928abe-15af-446c-84d4-490e471976e3"
      unitRef="shares">172345000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMi03LTEtMS0w_efa67fe4-791b-470b-89f3-61eabf70f285"
      unitRef="shares">171209000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy0xLTEtMS0w_d3785f80-2294-40da-aaa8-3c1e506462db"
      unitRef="shares">0</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy0zLTEtMS0w_6d8ecfa2-69da-4f95-8fcd-771052565fd1"
      unitRef="shares">4130000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy01LTEtMS0w_253fdc93-e8d9-4850-a82e-fd8ac0e98bd3"
      unitRef="shares">3154000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfMy03LTEtMS0w_4d732214-96e6-49ce-ad8c-0c628f762741"
      unitRef="shares">4319000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC0xLTEtMS0w_ffb6bd6f-f19c-45b3-bdd7-23ebc9e0ceab"
      unitRef="shares">172283000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i71adb945812f4891952d2907d9b81b76_D20190401-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC0zLTEtMS0w_b85424a5-ce93-4ce0-9530-42b3c7662259"
      unitRef="shares">175448000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC01LTEtMS0w_0b10200f-b86f-438a-b23c-ef00531c93de"
      unitRef="shares">175499000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RhYmxlOjJhMDAzMTQ1MWM1ZTRhOTk4ZWE1MjI5NzI2ZGJmNTRlL3RhYmxlcmFuZ2U6MmEwMDMxNDUxYzVlNGE5OThlYTUyMjk3MjZkYmY1NGVfNC03LTEtMS0w_a5d77130-2f39-469b-94b0-79397af04b54"
      unitRef="shares">175528000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i07bda74078784d8590fefad2ccda6876_D20200330-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTMz_ebcb3728-f9d3-40f0-95c7-ade2d10e4e19"
      unitRef="shares">5801000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="id7827367498f437bbfb70a8de8fd475d_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTQw_edf866fe-d5a5-4b90-99eb-8c7019b7d5ce"
      unitRef="shares">6328000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i1fb5903360cf4323afe3f1b01cd8f7a1_D20190401-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc3NQ_4148e255-ac65-41bc-bb00-fba3c2c5b544"
      unitRef="shares">6113000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i663c8efc644c4d02835ccb0ff0733027_D20190101-20190630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc4Nw_c8b8cc2c-e01f-4fa2-9757-6e63e291ee3b"
      unitRef="shares">5503000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i3ffc82f09f5545fa97686d1d3ccb7cd1_D20200330-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc1OA_7f6b538c-99b0-45a6-8f7d-32729f3af938"
      unitRef="shares">27000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ic32e6778efab4c1baa684793e82b924d_D20200101-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTY0OTI2NzQ0Mjc2Ng_ca1f1c19-8f69-40d6-84eb-28528a4d44e1"
      unitRef="shares">14000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85MS9mcmFnOjQ1NjAxOGU0MDNjYTQzMjM4MjA5Zjg4MGEzYzMwYTY2L3RleHRyZWdpb246NDU2MDE4ZTQwM2NhNDMyMzgyMDlmODgwYTNjMzBhNjZfMTA5OTUxMTYyOTUzOA_9c4c777c-8f05-4c68-b07e-61cbe8aaee0d"
      unitRef="shares">3120000</us-gaap:WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma>
    <us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDQ_7ddb09e0-2aa0-45d7-8df3-8775ec8d17f0">Restructuring Charges&lt;div style="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;On May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The restructuring plan included a global workforce reduction of approximately 8% and office closures. &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="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;The Company estimates the total restructuring charges from these actions to be approximately $16,445,000, of which $14,798,000 has been recorded in the three-month period ended June 28, 2020 and included in &#x201c;Restructuring charges&#x201d; on the Consolidated Statements of Operations. The remaining charges are expected to be recognized during the second half of 2020. The following table summarizes the restructuring charges (in thousands):&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="text-align:justify;margin-bottom:6pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:57.883%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.767%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.381%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.769%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Amount Expected to be Incurred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Incurred in the Three-months Ended June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;11,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other associated costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,063&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;16,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&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="text-align:justify;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;One-time termination benefits include severance, health insurance, and outplacement services for 181 employees who were either terminated or have been notified that they will be terminated at a future date. For employees not required to render service beyond a minimum retention period, the one-time termination benefits were recognized in the three-month period ended June 28, 2020. Otherwise, these benefits, including retention bonuses for selected employees, are being recognized over the service period, which is not expected to exceed the fourth quarter of 2020.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;"&gt;Contract termination costs include remaining lease liability obligations and operating lease asset impairments for offices closed prior to the end of the contractual lease term. These costs also include the write-off of leasehold improvements and other equipment related to these abandoned offices that had no alternative use. These contract termination costs were recognized in the three-month period ended June 28, 2020 when the Company ceased using the property for economic benefit. Other associated costs primarily include legal fees related to the employee termination actions, which are being recognized when the services are performed. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;margin-top:9pt;margin-bottom:16pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:6pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.327%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.204%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.384%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.181%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.384%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.888%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.384%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.648%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other Associated Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4,654)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(26)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4,689)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-cash restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(3,145)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(3,145)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;60&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;72&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,792&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;829&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent
      contextRef="ic537b61975ca4beba7154e52aeb4ef46_I20200526"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDg_62b69820-a5a6-486f-b1c1-a4eee1c43cb3"
      unitRef="number">0.08</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent>
    <us-gaap:RestructuringAndRelatedCostExpectedCost1
      contextRef="ic537b61975ca4beba7154e52aeb4ef46_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTA5OTUxMTYzMDQ2NQ_4e8b81f5-9144-44d9-8f9f-cc84e24272d5"
      unitRef="usd">16445000</us-gaap:RestructuringAndRelatedCostExpectedCost1>
    <us-gaap:RestructuringCharges
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTA5OTUxMTYzMDQ4MA_7d22e9c6-189c-45b4-bb18-04ac9604275c"
      unitRef="usd">14798000</us-gaap:RestructuringCharges>
    <us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDU_2281199f-c484-43cb-bce2-ccccd6def9eb">The following table summarizes the restructuring charges (in thousands):&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:57.883%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.767%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.381%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:17.769%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total Amount Expected to be Incurred&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Incurred in the Three-months Ended June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;11,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other associated costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;1,063&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;16,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock>
    <us-gaap:RestructuringAndRelatedCostExpectedCost1
      contextRef="ife0e92d165ae475ebc3a85b24bcf6df2_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMS0xLTEtMS03ODQ3_62f5faba-3be4-43b5-bd32-ad9b278e85ed"
      unitRef="usd">11387000</us-gaap:RestructuringAndRelatedCostExpectedCost1>
    <us-gaap:RestructuringCharges
      contextRef="i0dee04a40007403cade82e8888fd9e9f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMS0zLTEtMS03ODM5_1493c44a-8bfd-4d08-a47f-fd01bb7e56dd"
      unitRef="usd">10386000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringAndRelatedCostExpectedCost1
      contextRef="i0211d27ce6ab4f02aa4d36e19e27db7e_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMi0xLTEtMS03ODQ5_ef8fd292-97a7-49c7-a5ca-2c3dba280b89"
      unitRef="usd">3995000</us-gaap:RestructuringAndRelatedCostExpectedCost1>
    <us-gaap:RestructuringCharges
      contextRef="i91ce5770a5e241e5b402ace756c1ae96_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMi0zLTEtMS03ODQx_a355ff9c-d839-4010-86f5-83fcaa999c87"
      unitRef="usd">3995000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringAndRelatedCostExpectedCost1
      contextRef="iaa4635907fac42d9b5c93270fff00f32_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMy0xLTEtMS03ODUx_96b61f90-c327-4dff-8a73-6722b01e4289"
      unitRef="usd">1063000</us-gaap:RestructuringAndRelatedCostExpectedCost1>
    <us-gaap:RestructuringCharges
      contextRef="i453326dcf5964e45afcc4c90e9a8a856_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfMy0zLTEtMS03ODQz_e2fdc7e9-25b5-4cd3-be1f-0f1f0f3fd825"
      unitRef="usd">417000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringAndRelatedCostExpectedCost1
      contextRef="ic537b61975ca4beba7154e52aeb4ef46_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfNC0xLTEtMS03ODUz_a9d18f01-d85d-4ea6-9de7-3e413774a4b6"
      unitRef="usd">16445000</us-gaap:RestructuringAndRelatedCostExpectedCost1>
    <us-gaap:RestructuringCharges
      contextRef="ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOmFkNWZkZjdmNWI3MjQ0Zjk5NjMwYjE4NTU4ODgyYzQ2L3RhYmxlcmFuZ2U6YWQ1ZmRmN2Y1YjcyNDRmOTk2MzBiMTg1NTg4ODJjNDZfNC0zLTEtMS03ODQ1_ea60ea15-740c-4f0e-8ecf-8ddc5ff16c02"
      unitRef="usd">14798000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated
      contextRef="i94185f4fe5124c19b3c0b7f61fd3d802_D20200526-20200526"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MTI_207b0faf-d896-4343-aa16-ac51e39f9091"
      unitRef="employees">181</us-gaap:RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated>
    <us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RleHRyZWdpb246MmFhZGE5NGFlNDQ5NGZjNWI0NjZjMjM4ZjA5ZGUwZWVfMTI2NDQzODM3MjM0MDY_01f2f0e3-0066-4f83-a192-25de8eb672e0">&lt;div style="text-align:justify;margin-top:9pt;margin-bottom:16pt;"&gt;&lt;span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:6pt;"&gt;&lt;table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"&gt;&lt;tr&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:37.327%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.204%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.384%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:12.181%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.384%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:11.888%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:0.384%;"/&gt;&lt;td style="width:0.1%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;td style="width:13.648%;"/&gt;&lt;td style="width:1.0%;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Other Associated Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of December 31, 2019&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;10,386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;3,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;417&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;14,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Cash payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4,654)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(26)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(9)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(4,689)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Non-cash restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(3,145)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;(3,145)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;60&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;72&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;Balance as of June 28, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;5,792&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;829&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;7,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"&gt;&lt;span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;td colspan="3" style="display:none;"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock>
    <us-gaap:RestructuringReserve
      contextRef="idaab6b4b384b46cf923fb1e000fc42c1_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS0xLTEtMS03ODU1_fe3831e7-be2e-4197-968f-771659b8cb5e"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i66e2905874d54c2caf75916e1745020c_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS0zLTEtMS03ODU1_272802e9-379c-4d7c-82c1-0ae159d2562f"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i087c7a0293b843fa939b25a159478a61_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS01LTEtMS03ODU1_fce959d3-977c-45c2-8560-41827dd42ddb"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i50c300c01cad466888f3adcd2745bef7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMS03LTEtMS03ODU1_fc210a27-768d-4ff5-86e0-e467f7f04b12"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringCharges
      contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi0xLTEtMS03ODU3_42e5ce95-1d79-49be-a5ca-5409c0339fff"
      unitRef="usd">10386000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi0zLTEtMS03ODU3_3d08aa02-7584-4d27-83b6-ee4eba8f1039"
      unitRef="usd">3995000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi01LTEtMS03ODU3_c45823d9-92f6-4171-bead-73aced51f795"
      unitRef="usd">417000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMi03LTEtMS03ODU3_5733282d-c889-4cb5-90ed-16ad0da3f5d9"
      unitRef="usd">14798000</us-gaap:RestructuringCharges>
    <us-gaap:PaymentsForRestructuring
      contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy0xLTEtMS03ODU3_60efad7c-1731-442e-82ea-d91356da08f3"
      unitRef="usd">4654000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy0zLTEtMS03ODU3_1be2b34d-6866-44be-ac61-b9b59d9a92f3"
      unitRef="usd">26000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy01LTEtMS03ODU3_f67c842d-6bad-4d38-832c-af1a8cf7515c"
      unitRef="usd">9000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfMy03LTEtMS03ODU3_18619de7-cc75-40f5-bd21-8a1d01b2a1c1"
      unitRef="usd">4689000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveSettledWithoutCash2
      contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC0xLTEtMS03ODU3_bde32fe6-1d64-493e-8072-b785f5ea7e61"
      unitRef="usd">0</us-gaap:RestructuringReserveSettledWithoutCash2>
    <us-gaap:RestructuringReserveSettledWithoutCash2
      contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC0zLTEtMS03ODU3_c9b9d0db-61ca-4dc3-8ed8-a9fbdd5e878c"
      unitRef="usd">3145000</us-gaap:RestructuringReserveSettledWithoutCash2>
    <us-gaap:RestructuringReserveSettledWithoutCash2
      contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC01LTEtMS03ODU3_ed9d48b4-a4eb-46b2-a864-d7128e17cc54"
      unitRef="usd">0</us-gaap:RestructuringReserveSettledWithoutCash2>
    <us-gaap:RestructuringReserveSettledWithoutCash2
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNC03LTEtMS03ODU3_b990bd96-8737-4f20-893e-2a2555bacc86"
      unitRef="usd">3145000</us-gaap:RestructuringReserveSettledWithoutCash2>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="ie942cb5e5e674dfaa985fbf77238b12f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS0xLTEtMS03ODU3_196c9205-4772-47d2-a38f-089a060b5831"
      unitRef="usd">-60000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="i2e1de4f1040947a58c147cea88286a91_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS0zLTEtMS03ODU3_f079f033-c648-4d64-839f-55478b5f5c93"
      unitRef="usd">-5000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="ia80f498e186841d58c48c0ac2ddaa23f_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS01LTEtMS03ODU3_0da64499-9d68-4e28-83e4-d3550c56faaf"
      unitRef="usd">-7000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNS03LTEtMS03ODU3_a9948aa7-1cac-4229-ab66-97d994c10483"
      unitRef="usd">-72000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserve
      contextRef="i00752329dd5e416782e4cef86994ba03_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi0xLTEtMS03ODYy_18f3ecd9-c378-41a0-90bc-3aa8d9e44119"
      unitRef="usd">5792000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="ibb57e579a32649ad80b43341a1de4d0b_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi0zLTEtMS03ODYy_1edb9212-4f98-488d-8390-b15d9b3e3f49"
      unitRef="usd">829000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i89b581a88c95490187c013c276398814_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi01LTEtMS03ODYy_9fd5fa07-6b18-4a4f-b2eb-2dc18f542fdf"
      unitRef="usd">415000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="if2ca316ec02e481498b0cbcf89252fe1_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85NC9mcmFnOjJhYWRhOTRhZTQ0OTRmYzViNDY2YzIzOGYwOWRlMGVlL3RhYmxlOjZlY2RmMTE3YjI2OTRjYjJiMzU5Mjc1MzRmNTNkYmM5L3RhYmxlcmFuZ2U6NmVjZGYxMTdiMjY5NGNiMmIzNTkyNzUzNGY1M2RiYzlfNi03LTEtMS03ODYy_42f47889-066e-43ef-aa2f-5a53a273bf9b"
      unitRef="usd">7036000</us-gaap:RestructuringReserve>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85Ny9mcmFnOjc1NzZkMjNkMGNiYzRjODJiODFiMDAyYzk0OTUzOThlL3RleHRyZWdpb246NzU3NmQyM2QwY2JjNGM4MmI4MWIwMDJjOTQ5NTM5OGVfMTI5Ng_b88b3550-83f6-422b-a535-9b1c6ba455ba">Subsequent EventsOn July 29, 2020, the Company&#x2019;s Board of Directors declared a cash dividend of $0.055 per share.  The dividend is payable on August 28, 2020 to all shareholders of record as of the close of business on August 14, 2020.</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:Dividends
      contextRef="id52911d2174e4651aeb38a8ca2dabb70_D20200729-20200729"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl85Ny9mcmFnOjc1NzZkMjNkMGNiYzRjODJiODFiMDAyYzk0OTUzOThlL3RleHRyZWdpb246NzU3NmQyM2QwY2JjNGM4MmI4MWIwMDJjOTQ5NTM5OGVfMTEy_be174529-062b-4dd8-aa84-5a783950f15b"
      unitRef="usd">0.055</us-gaap:Dividends>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865191624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover Page<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 28, 2020 </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="top.Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [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="top.Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jun. 28,  2020<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-34218<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">COGNEX CORP<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000851205<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2020<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q2<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">MA<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">04-2713778<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">One Vision Drive<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Natick<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">MA<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">01760<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">508<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">650-3000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Large Accelerated Filer<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CGNX<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="nump">173,047,292<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in CCYY 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented.  If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 13<br> -Subsection a-13<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.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 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>13
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470869636648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Income Statement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 169,097<span></span>
</td>
<td class="nump">$ 199,047<span></span>
</td>
<td class="nump">$ 336,332<span></span>
</td>
<td class="nump">$ 372,531<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenue</a></td>
<td class="nump">50,320<span></span>
</td>
<td class="nump">50,967<span></span>
</td>
<td class="nump">91,520<span></span>
</td>
<td class="nump">97,251<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross margin</a></td>
<td class="nump">118,777<span></span>
</td>
<td class="nump">148,080<span></span>
</td>
<td class="nump">244,812<span></span>
</td>
<td class="nump">275,280<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research, development, and engineering expenses</a></td>
<td class="nump">30,397<span></span>
</td>
<td class="nump">28,079<span></span>
</td>
<td class="nump">66,343<span></span>
</td>
<td class="nump">58,321<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general, and administrative expenses</a></td>
<td class="nump">60,153<span></span>
</td>
<td class="nump">68,245<span></span>
</td>
<td class="nump">129,291<span></span>
</td>
<td class="nump">135,056<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges (Note 16)</a></td>
<td class="nump">14,798<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">14,798<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="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges (Note 8)</a></td>
<td class="nump">19,571<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">19,571<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="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income (loss)</a></td>
<td class="num">(6,142)<span></span>
</td>
<td class="nump">51,756<span></span>
</td>
<td class="nump">14,809<span></span>
</td>
<td class="nump">81,903<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax', window );">Foreign currency gain (loss)</a></td>
<td class="nump">336<span></span>
</td>
<td class="nump">140<span></span>
</td>
<td class="num">(2,667)<span></span>
</td>
<td class="num">(108)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InvestmentIncomeNonoperating', window );">Investment income</a></td>
<td class="nump">3,291<span></span>
</td>
<td class="nump">5,223<span></span>
</td>
<td class="nump">8,520<span></span>
</td>
<td class="nump">10,128<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense)</a></td>
<td class="nump">203<span></span>
</td>
<td class="num">(144)<span></span>
</td>
<td class="nump">20<span></span>
</td>
<td class="nump">783<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income (loss) before income tax expense (benefit)</a></td>
<td class="num">(2,312)<span></span>
</td>
<td class="nump">56,975<span></span>
</td>
<td class="nump">20,682<span></span>
</td>
<td class="nump">92,706<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="num">(1,170)<span></span>
</td>
<td class="nump">8,226<span></span>
</td>
<td class="nump">1,347<span></span>
</td>
<td class="nump">10,853<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income</a></td>
<td class="num">$ (1,142)<span></span>
</td>
<td class="nump">$ 48,749<span></span>
</td>
<td class="nump">$ 19,335<span></span>
</td>
<td class="nump">$ 81,853<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDilutedAbstract', window );"><strong>Net income (loss) per weighted-average common and common-equivalent share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare', window );">Basic (usd per share)</a></td>
<td class="num">$ (0.01)<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.11<span></span>
</td>
<td class="nump">$ 0.48<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (usd per share)</a></td>
<td class="num">$ (0.01)<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.11<span></span>
</td>
<td class="nump">$ 0.47<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted-average common and common-equivalent shares outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (shares)</a></td>
<td class="nump">172,283<span></span>
</td>
<td class="nump">171,318<span></span>
</td>
<td class="nump">172,345<span></span>
</td>
<td class="nump">171,209<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (shares)</a></td>
<td class="nump">172,283<span></span>
</td>
<td class="nump">175,448<span></span>
</td>
<td class="nump">175,499<span></span>
</td>
<td class="nump">175,528<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockDividendsPerShareCashPaid', window );">Cash dividends per common share (usd per share)</a></td>
<td class="nump">$ 0.055<span></span>
</td>
<td class="nump">$ 0.050<span></span>
</td>
<td class="nump">$ 0.110<span></span>
</td>
<td class="nump">$ 0.100<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=120380238&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=120380238&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1337-109256<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDilutedAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109240200&amp;loc=d3e30690-110894<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 35<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121605123&amp;loc=d3e30226-110892<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=120253306&amp;loc=d3e28228-110885<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450222&amp;loc=d3e30840-110895<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(1)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) derived from continuing operations during 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1337-109256<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-03(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868656-224227<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1252-109256<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120385591&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669625-108580<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>14
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470867125848">
<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="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="num">$ (1,142)<span></span>
</td>
<td class="nump">$ 48,749<span></span>
</td>
<td class="nump">$ 19,335<span></span>
</td>
<td class="nump">$ 81,853<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract', 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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of ($836) and $239 in the three-month periods and net of tax of ($1,788) and $507 in the six-month periods, respectively</a></td>
<td class="nump">12,451<span></span>
</td>
<td class="nump">2,311<span></span>
</td>
<td class="nump">8,590<span></span>
</td>
<td class="nump">4,562<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit loss on investments</a></td>
<td class="num">(85)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">75<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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="num">(955)<span></span>
</td>
<td class="num">(382)<span></span>
</td>
<td class="num">(2,805)<span></span>
</td>
<td class="num">(422)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent', window );">Net change related to available-for-sale investments</a></td>
<td class="nump">11,411<span></span>
</td>
<td class="nump">1,929<span></span>
</td>
<td class="nump">5,860<span></span>
</td>
<td class="nump">4,140<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_CurrencytranslationadjustmentsAbstract', 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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments</a></td>
<td class="nump">1,903<span></span>
</td>
<td class="num">(663)<span></span>
</td>
<td class="num">(5,462)<span></span>
</td>
<td class="num">(445)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income, net of tax</a></td>
<td class="nump">13,314<span></span>
</td>
<td class="nump">1,266<span></span>
</td>
<td class="nump">398<span></span>
</td>
<td class="nump">3,695<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Total comprehensive income</a></td>
<td class="nump">$ 12,172<span></span>
</td>
<td class="nump">$ 50,015<span></span>
</td>
<td class="nump">$ 19,733<span></span>
</td>
<td class="nump">$ 85,548<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CurrencytranslationadjustmentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Currency translation adjustments [Abstract]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CurrencytranslationadjustmentsAbstract</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(24))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e557-108580<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(26))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669625-108580<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669619-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669625-108580<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) loss.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569616-111683<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569643-111683<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669625-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569643-111683<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669619-108580<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=108774443&amp;loc=SL4569616-111683<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e689-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e637-108580<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27357-111563<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17A<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other-than-temporary impairment (OTTI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), recognized in earnings and other comprehensive loss (OCI).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8A<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=SL6284422-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>15
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470870636696">
<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="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax', window );">Tax effect on cash flow hedges</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain (loss) on available-for-sale investments</a></td>
<td class="num">(836)<span></span>
</td>
<td class="nump">239<span></span>
</td>
<td class="num">(1,788)<span></span>
</td>
<td class="nump">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="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax', window );">Tax effect 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>
<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_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), before 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=120253306&amp;loc=d3e28129-110885<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 21<br> -URI http://asc.fasb.org/extlink&amp;oid=118261656&amp;loc=d3e32262-110900<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e640-108580<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109240200&amp;loc=d3e30755-110894<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), after reclassification adjustments, of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e640-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e640-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>16
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470870021304">
<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>Jun. 28, 2020</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="top.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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 286,021<span></span>
</td>
<td class="nump">$ 171,431<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">143,084<span></span>
</td>
<td class="nump">240,470<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, less reserves of $2,235 and $1,821 in 2020 and 2019, respectively</a></td>
<td class="nump">111,671<span></span>
</td>
<td class="nump">103,447<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesCurrent', window );">Unbilled revenue</a></td>
<td class="nump">978<span></span>
</td>
<td class="nump">4,782<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">52,953<span></span>
</td>
<td class="nump">60,261<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">51,768<span></span>
</td>
<td class="nump">26,840<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">646,475<span></span>
</td>
<td class="nump">607,231<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermInvestments', window );">Non-current investments, amortized cost of $461,948 and $431,633 in 2020 and 2019, respectively, allowance for expected credit losses of $75 and $0 in 2020 and 2019, respectively</a></td>
<td class="nump">467,087<span></span>
</td>
<td class="nump">433,452<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant, and equipment, net</a></td>
<td class="nump">83,936<span></span>
</td>
<td class="nump">89,443<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">25,819<span></span>
</td>
<td class="nump">17,522<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">242,436<span></span>
</td>
<td class="nump">243,445<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">17,337<span></span>
</td>
<td class="nump">39,490<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred income taxes</a></td>
<td class="nump">443,732<span></span>
</td>
<td class="nump">449,519<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">8,042<span></span>
</td>
<td class="nump">5,833<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">1,934,864<span></span>
</td>
<td class="nump">1,885,935<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">17,999<span></span>
</td>
<td class="nump">17,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="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">66,264<span></span>
</td>
<td class="nump">52,199<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesCurrent', window );">Accrued income taxes</a></td>
<td class="nump">5,952<span></span>
</td>
<td class="nump">30,333<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">46,738<span></span>
</td>
<td class="nump">14,432<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="nump">7,628<span></span>
</td>
<td class="nump">5,647<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">144,581<span></span>
</td>
<td class="nump">120,477<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating Lease, Liability, Noncurrent</a></td>
<td class="nump">21,208<span></span>
</td>
<td class="nump">12,326<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">326,295<span></span>
</td>
<td class="nump">332,344<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes</a></td>
<td class="nump">12,302<span></span>
</td>
<td class="nump">11,563<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxes', window );">Non-current accrued income taxes</a></td>
<td class="nump">48,915<span></span>
</td>
<td class="nump">51,113<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">5,085<span></span>
</td>
<td class="nump">2,402<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">558,386<span></span>
</td>
<td class="nump">530,225<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockValueOutstanding', window );">Preferred Stock, Value, 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="top.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="top.Show.showAR( this, 'defref_us-gaap_CommonStockValueOutstanding', window );">Common stock, $.002 par value &#8211; Authorized: 300,000 shares in 2020 and 2019, respectively, issued and outstanding: 173,047 and 172,440 shares in 2020 and 2019, respectively</a></td>
<td class="nump">346<span></span>
</td>
<td class="nump">345<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">710,412<span></span>
</td>
<td class="nump">639,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="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">702,597<span></span>
</td>
<td class="nump">753,268<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss, net of tax</a></td>
<td class="num">(36,877)<span></span>
</td>
<td class="num">(37,275)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total shareholders&#8217; equity</a></td>
<td class="nump">1,376,478<span></span>
</td>
<td class="nump">1,355,710<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and shareholders' equity</a></td>
<td class="nump">$ 1,934,864<span></span>
</td>
<td class="nump">$ 1,885,935<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121593590&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-107765<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121593590&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AccruedIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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.  This amount is the total of current and noncurrent accrued income taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32718-109319<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e637-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669686-108580<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e681-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6801-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CommonStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556615&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121556615&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.12)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PreferredStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>17
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864613336">
<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>Jun. 28, 2020</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Reserves for accounts receivable</a></td>
<td class="nump">$ 2,235<span></span>
</td>
<td class="nump">$ 1,821<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value</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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized</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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued</a></td>
<td class="nump">173,047,000<span></span>
</td>
<td class="nump">172,440,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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121611835&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121599878&amp;loc=SL82895884-210446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num: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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865988920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 19,335<span></span>
</td>
<td class="nump">$ 81,853<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockOptionPlanExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">22,808<span></span>
</td>
<td class="nump">23,248<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation of property, plant, and equipment</a></td>
<td class="nump">11,162<span></span>
</td>
<td class="nump">10,537<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">2,582<span></span>
</td>
<td class="nump">1,538<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">19,571<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="top.Show.showAR( this, 'defref_cgnx_ExcessAndObsoleteInventoryCharges', window );">Excess and obsolete inventory charges</a></td>
<td class="nump">8,783<span></span>
</td>
<td class="nump">1,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease asset impairment charges</a></td>
<td class="nump">2,534<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="top.Show.showAR( this, 'defref_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments', window );">Amortization of discounts or premiums on investments</a></td>
<td class="nump">328<span></span>
</td>
<td class="num">(342)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfInvestments', window );">Realized gain on sale of investments</a></td>
<td class="num">(2,805)<span></span>
</td>
<td class="num">(422)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery', window );">Credit loss on investments</a></td>
<td class="nump">75<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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Revaluation of contingent consideration</a></td>
<td class="num">(114)<span></span>
</td>
<td class="num">(863)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes', window );">Change in deferred income taxes</a></td>
<td class="nump">1,395<span></span>
</td>
<td class="num">(1,311)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="num">(8,957)<span></span>
</td>
<td class="nump">11,383<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Unbilled revenue</a></td>
<td class="nump">3,804<span></span>
</td>
<td class="num">(1,989)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(1,664)<span></span>
</td>
<td class="nump">8,681<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="num">(25,461)<span></span>
</td>
<td class="num">(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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">143<span></span>
</td>
<td class="num">(4,528)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="nump">15,806<span></span>
</td>
<td class="num">(12,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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedTaxesPayable', window );">Accrued income taxes</a></td>
<td class="num">(25,411)<span></span>
</td>
<td class="num">(4,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">32,586<span></span>
</td>
<td class="nump">8,575<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet', window );">Other</a></td>
<td class="nump">2,520<span></span>
</td>
<td class="num">(1,190)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">79,020<span></span>
</td>
<td class="nump">120,150<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireInvestments', window );">Purchases of investments</a></td>
<td class="num">(317,540)<span></span>
</td>
<td class="num">(664,896)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments', window );">Maturities and sales of investments</a></td>
<td class="nump">387,765<span></span>
</td>
<td class="nump">587,175<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchases of property, plant, and equipment</a></td>
<td class="num">(6,985)<span></span>
</td>
<td class="num">(8,969)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash provided by (used in) investing activities</a></td>
<td class="nump">63,240<span></span>
</td>
<td class="num">(86,690)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions', window );">Issuance of common stock under stock plans</a></td>
<td class="nump">48,235<span></span>
</td>
<td class="nump">26,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="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Repurchase of common stock</a></td>
<td class="num">(51,036)<span></span>
</td>
<td class="num">(61,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="top.Show.showAR( this, 'defref_us-gaap_PaymentsOfDividendsCommonStock', window );">Payment of dividends</a></td>
<td class="num">(18,972)<span></span>
</td>
<td class="num">(17,146)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payment of contingent consideration</a></td>
<td class="num">(1,039)<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="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by (used in) financing activities</a></td>
<td class="num">(22,812)<span></span>
</td>
<td class="num">(52,419)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Effect of foreign exchange rate changes on cash and cash equivalents</a></td>
<td class="num">(4,858)<span></span>
</td>
<td class="num">(149)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net change in cash and cash equivalents</a></td>
<td class="nump">114,590<span></span>
</td>
<td class="num">(19,108)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at beginning of period</a></td>
<td class="nump">171,431<span></span>
</td>
<td class="nump">108,212<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at end of period</a></td>
<td class="nump">$ 286,021<span></span>
</td>
<td class="nump">$ 89,104<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Excess and Obsolete Inventory Charges</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3521-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3044-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=SL98516268-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=98513438&amp;loc=d3e33268-110906<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=98513438&amp;loc=d3e33268-110906<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after recovery, of writeoff of financing receivable, charged against allowance for credit loss.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 55<br> -Paragraph 79<br> -URI http://asc.fasb.org/extlink&amp;oid=121647567&amp;loc=SL82922352-210448<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInAccruedTaxesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period of all taxes owed but not paid, including income, property and other taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedTaxesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669625-108580<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from impairment of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121593497&amp;loc=SL77918431-209957<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PaymentsToAcquireInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>19
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865324520">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statement 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</div></th>
<th class="th"><div>Additional Paid-in Capital</div></th>
<th class="th"><div>Retained Earnings</div></th>
<th class="th"><div>Accumulated Other Comprehensive Loss</div></th>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning Balance (in shares) at Dec. 31, 2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">170,820<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning Balance at Dec. 31, 2018</a></td>
<td class="nump">$ 1,135,263<span></span>
</td>
<td class="nump">$ 342<span></span>
</td>
<td class="nump">$ 529,208<span></span>
</td>
<td class="nump">$ 646,214<span></span>
</td>
<td class="num">$ (40,501)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Issuance of common stock under stock plans (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,239<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock plans</a></td>
<td class="nump">26,417<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">26,415<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,398)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(61,690)<span></span>
</td>
<td class="num">$ (3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(61,687)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">23,248<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">23,248<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsCash', window );">Payment of dividends</a></td>
<td class="num">(17,146)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(17,146)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">81,853<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">81,853<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($82)</a></td>
<td class="nump">4,562<span></span>
</td>
<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,562<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit (recovery) loss on investments</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">(422)<span></span>
</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">(422)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment</a></td>
<td class="num">(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>
<td class="num">(445)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Ending Balance (in shares) at Jun. 30, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">170,661<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending Balance at Jun. 30, 2019</a></td>
<td class="nump">1,191,640<span></span>
</td>
<td class="nump">$ 341<span></span>
</td>
<td class="nump">578,871<span></span>
</td>
<td class="nump">649,234<span></span>
</td>
<td class="num">(36,806)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning Balance (in shares) at Mar. 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">171,537<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning Balance at Mar. 31, 2019</a></td>
<td class="nump">1,188,859<span></span>
</td>
<td class="nump">$ 343<span></span>
</td>
<td class="nump">555,834<span></span>
</td>
<td class="nump">670,754<span></span>
</td>
<td class="num">(38,072)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Issuance of common stock under stock plans (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">522<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock plans</a></td>
<td class="nump">12,071<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">12,070<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,398)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(61,690)<span></span>
</td>
<td class="num">$ (3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(61,687)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">10,967<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,967<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsCash', window );">Payment of dividends</a></td>
<td class="num">(8,582)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(8,582)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">48,749<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">48,749<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($82)</a></td>
<td class="nump">2,311<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,311<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit (recovery) loss on investments</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">(382)<span></span>
</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">(382)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment</a></td>
<td class="num">(663)<span></span>
</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">(663)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Ending Balance (in shares) at Jun. 30, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">170,661<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending Balance at Jun. 30, 2019</a></td>
<td class="nump">$ 1,191,640<span></span>
</td>
<td class="nump">$ 341<span></span>
</td>
<td class="nump">578,871<span></span>
</td>
<td class="nump">649,234<span></span>
</td>
<td class="num">(36,806)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning Balance (in shares) at Dec. 31, 2019</a></td>
<td class="nump">172,440<span></span>
</td>
<td class="nump">172,440<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning Balance at Dec. 31, 2019</a></td>
<td class="nump">$ 1,355,710<span></span>
</td>
<td class="nump">$ 345<span></span>
</td>
<td class="nump">639,372<span></span>
</td>
<td class="nump">753,268<span></span>
</td>
<td class="num">(37,275)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Issuance of common stock under stock plans (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,822<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock plans</a></td>
<td class="nump">48,235<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">48,232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,215)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(51,036)<span></span>
</td>
<td class="num">$ (2)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(51,034)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">22,808<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,808<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsCash', window );">Payment of dividends</a></td>
<td class="num">(18,972)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(18,972)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">19,335<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,335<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($82)</a></td>
<td class="nump">8,590<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,590<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit (recovery) loss on investments</a></td>
<td class="nump">75<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">75<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">(2,805)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,805)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment</a></td>
<td class="num">$ (5,462)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,462)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Ending Balance (in shares) at Jun. 28, 2020</a></td>
<td class="nump">173,047<span></span>
</td>
<td class="nump">173,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="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending Balance at Jun. 28, 2020</a></td>
<td class="nump">$ 1,376,478<span></span>
</td>
<td class="nump">$ 346<span></span>
</td>
<td class="nump">710,412<span></span>
</td>
<td class="nump">702,597<span></span>
</td>
<td class="num">(36,877)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning Balance (in shares) at Mar. 29, 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">171,688<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning Balance at Mar. 29, 2020</a></td>
<td class="nump">1,327,493<span></span>
</td>
<td class="nump">$ 344<span></span>
</td>
<td class="nump">664,132<span></span>
</td>
<td class="nump">713,208<span></span>
</td>
<td class="num">(50,191)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Issuance of common stock under stock plans (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,359<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock plans</a></td>
<td class="nump">38,264<span></span>
</td>
<td class="nump">$ 2<span></span>
</td>
<td class="nump">38,262<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</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="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="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">8,018<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,018<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DividendsCash', window );">Payment of dividends</a></td>
<td class="num">(9,469)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(9,469)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="num">(1,142)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,142)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($82)</a></td>
<td class="nump">12,451<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,451<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit (recovery) loss on investments</a></td>
<td class="num">(85)<span></span>
</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">(85)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">(955)<span></span>
</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">(955)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment</a></td>
<td class="nump">$ 1,903<span></span>
</td>
<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,903<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Ending Balance (in shares) at Jun. 28, 2020</a></td>
<td class="nump">173,047<span></span>
</td>
<td class="nump">173,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="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending Balance at Jun. 28, 2020</a></td>
<td class="nump">$ 1,376,478<span></span>
</td>
<td class="nump">$ 346<span></span>
</td>
<td class="nump">$ 710,412<span></span>
</td>
<td class="nump">$ 702,597<span></span>
</td>
<td class="num">$ (36,877)<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=120383193&amp;loc=d3e11149-113907<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=120383193&amp;loc=d3e11178-113907<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121326096&amp;loc=d3e4534-113899<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DividendsCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of paid and unpaid cash dividends declared for classes of stock, for example, but not limited to, common and preferred.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 405<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6957935&amp;loc=d3e64057-112817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DividendsCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669625-108580<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e689-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e637-108580<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27357-111563<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17A<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other-than-temporary impairment (OTTI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), recognized in earnings and other comprehensive loss (OCI).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8A<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=SL6284422-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>20
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865981320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statement of Shareholders' Equity (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain (loss) on available-for-sale investments</a></td>
<td class="num">$ (836)<span></span>
</td>
<td class="nump">$ 239<span></span>
</td>
<td class="num">$ (1,788)<span></span>
</td>
<td class="nump">$ 507<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=d3e640-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>21
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862325480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As permitted by the rules of the Securities and Exchange Commission applicable to Quarterly Reports on Form                      10-Q, these notes are condensed and do not contain all disclosures required by generally accepted accounting principles (GAAP).  As a result of the adoption of ASU 2016-13 "Measurement of Credit Losses on Financial Instruments," Cognex Corporation (the "Company") has provided new disclosures related to credit losses in this Quarterly Report on Form 10-Q.  Reference should be made to the consolidated financial statements and related notes included in the Company&#8217;s Annual Report on Form 10-K for the year ended December&#160;31, 2019 for a full description of other significant accounting policies.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">In the opinion of the management of the Company, the accompanying consolidated unaudited financial statements contain all adjustments, consisting of normal, recurring adjustments, excess and obsolete inventory charges (Note 5), intangible asset impairment charges (Note 8), restructuring charges (Note 16), and financial statement reclassifications necessary to present fairly the Company&#8217;s financial position as of June&#160;28, 2020, and the results of its operations for the three-month and six-month periods ended June&#160;28, 2020 and June&#160;30, 2019, and changes in shareholders&#8217; equity, comprehensive income, and cash flows for the periods presented.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The results disclosed in the Consolidated Statements of Operations for the three-month and six-month periods ended June&#160;28, 2020 are not necessarily indicative of the results to be expected for the full year.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Money market instruments, as well as certificates of deposit and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and 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.  It is the Company&#8217;s policy to invest in debt securities with effective maturities that do not exceed ten years.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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 and credit losses, recorded in shareholders&#8217; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#8217;s limited partnership interest is accounted for using the cost method because the Company&#8217;s investment is less than 5% of the partnership and the Company has no influence over the partnership&#8217;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether a credit loss or other type of impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the decline has resulted from a credit loss or other factors.  In assessing whether a credit loss exists, the Company compares the present value of the cash flows expected to be collected from the security with the amortized cost basis of the security.  If the present value of the cash flows expected to be collected is less than the amortized cost basis of the security, then a credit loss exists and an allowance for credit losses is recorded.  The allowance for credit losses is limited by the amount that the fair value is less than the amortized cost basis of the security.  Credit losses on impaired securities continue to be measured in subsequent periods, using the present value of expected future cash flows, and changes in the expected credit losses are recorded in current operations.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statement of Operations.  When developing an estimate of the expected credit losses, the Company considers all available information relevant to assessing the collectability of cash flows. This information includes internal and external factors, historical and current events, reasonable and supportable forecasts including management's expectations of future economic conditions, the type of security, the credit rating of the security, the size of the loss position, as well as other relevant information. </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">An impairment is recognized as a write-down if (i)&#160;the Company has the intent to sell the security or (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis.  If impairment is considered upon condition (i)&#160;or (ii)&#160;described above, the debt security's amortized cost basis is written-down to its fair value and the impairment is recognized in current operations. Subsequent increases in the fair value of the debt securities after the write-down are included in shareholders' equity as other comprehensive income. The differences between the new amortized cost basis and the cash flows expected to be collected are accreted as interest income. </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Unrealized losses, that have not been recorded through an allowance for credit losses or write-down of the debt security, are recorded in shareholders' equity as other comprehensive loss, net of the applicable taxes.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon 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 potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, general economic and industry conditions, and reasonable forecasts about the future, 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 reversal of the bad debt expense.  Credit losses are included in "Selling, general, and administrative expenses" on the Consolidated Statement 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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI http://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864098664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>New Pronouncements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">New Pronouncements</a></td>
<td class="text">New Pronouncements<div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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)"</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform.  The amendments in this ASU 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, 2022, except for hedging relationships existing as of December 31, 2022, that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship.  The amendments in this ASU are effective for all entities as of March 12, 2020 through December 31, 2022.  Management does not expect ASU 2020-04 to have a material impact on the Company's consolidated 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_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=113356391&amp;loc=SL49131195-203048<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -URI http://asc.fasb.org/topic&amp;trid=2122394<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=113356391&amp;loc=SL49131195-203048<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section S99<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=112272810&amp;loc=SL108384541-122693<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (i)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=113356391&amp;loc=SL49131195-203048<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (j)<br> -URI http://asc.fasb.org/extlink&amp;oid=113356391&amp;loc=SL49131195-203048<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(iv)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SAB Topic 11.M.Q2)<br> -URI http://asc.fasb.org/extlink&amp;oid=112272810&amp;loc=d3e31137-122693<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 10<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121646688&amp;loc=SL121648383-210437<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 10<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121646688&amp;loc=SL121648383-210437<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(1)<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(2)<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(3)<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862281224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text">Fair Value Measurements<div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 required to be measured at fair value on a recurring basis as of June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:49.098%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.812%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.812%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.814%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level 1)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Significant Other<br/>Observable<br/>Inputs (Level 2)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unobservable Inputs (Level 3)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Assets:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Money market instruments</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,222&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">236,660&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">230,692&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">91,610&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,517&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right: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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right: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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contingent consideration liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded gross credit losses and gross credit recoveries on debt securities totaling $0 and $85,000, respectively, for the three-month period ended June 28, 2020, and $160,000 and $85,000, respectively, for the six-month period ended June 28, 2020. No credit losses or recoveries on debt securities were recorded for the three-month or six-month periods ended June 30, 2019.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statements of Operations.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company's contingent consideration liabilities are reported at fair value based upon probability-adjusted present values of the consideration expected to be paid using significant inputs that are not observable in the market, and are therefore classified as Level 3.  Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain revenue milestones.  The fair values of these contingent consideration liabilities were calculated using discount rates consistent with the level of risk of achievement, and are remeasured each reporting period.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The fair value of the contingent consideration liability related to the Company's acquisition of Chiaro Technologies, LLC was $1,153,000 as of December 31, 2019. During the three-month period ended June 28, 2020, the Company paid out $1,039,000 based upon the revenue levels achieved, with the remaining $114,000 recorded as a fair value adjustment in "Other income (expense)" on the Consolidated Statements of Operations.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. was written down to zero as of December 31, 2019 resulting from a lower level of revenue in the Americas' automotive industry, and the balance remains at zero as of June 28, 2020. The undiscounted potential outcomes related to future contingent consideration range from $0 to $2,500,000 based upon certain revenue levels over the next two years. </span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">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. Our business has been adversely and materially impacted by deteriorating global economic conditions resulting from the COVID-19 pandemic. The significant decline in business levels triggered a review of long-lived assets for potential impairment as of May 26, 2020, which resulted in operating lease asset impairment charges of $2,534,000 (refer to Notes 6 and 16) that are included in "Restructuring charges" on the Consolidated Statements of Operations, and intangible asset impairment charges of $19,571,000 (refer to Note 8). These fair value measurements are based upon the present values of future cash flows using significant inputs that are not observable in the market, and are therefore classified as Level 3.</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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862575576">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:61.011%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:16.128%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:16.131%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">235,799&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">155,498&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Money market instruments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,222&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">15,933&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash and cash equivalents</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">286,021&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">171,431&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,311&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">66,680&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">65,624&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">34,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">92,914&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,869&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,294&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,630&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Certificate of deposit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,328&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">143,084&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">240,470&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">196,674&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">216,334&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">194,412&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">146,474&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">41,299&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46,403&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,914&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,648&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">16,005&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,322&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">467,087&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">433,452&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">896,192&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">845,353&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; corporate bonds consist of debt securities issued by both domestic and foreign companies; treasury bills consist of debt securities issued by the U.S. government; sovereign bonds consist of direct debt issued by foreign governments; municipal bonds consist of debt securities issued by state and local government entities; certificates of deposit are time deposits held by financial institutions with a fixed interest rate; and agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing.  All securities are denominated in U.S. Dollars, with the exception of the certificate of deposit held as of December 31, 2019 that was denominated in Korean Won.</span></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Accrued interest receivable is recorded in "Prepaid expenses and other current assets" on the Consolidated Balance Sheet and amounted to $1,958,000 and $2,874,000 as of June 28, 2020 and December 31, 2019, respectively.</span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">On January 1, 2020, the Company adopted Accounting Standards Update (ASU) 2016-13,  &#8220;Measurement of Credit Losses on Financial Instruments,&#8221;  using the modified-retrospective approach, which requires the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to retained earnings as of the beginning of the period in which the guidance is effective.  The Company did not record an adjustment to retained earnings, as there were no debt securities with credit losses as of the adoption date. </span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:6pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:41.841%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:11.636%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.343%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.489%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.492%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amortized<br/>Cost</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">49,899&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">412&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,311&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,065&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">221&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(38)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">33,480&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">538&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">34,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,787&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">82&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,869&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,643&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">194,330&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,345&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">196,674&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">192,233&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,513&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(334)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">194,412&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">40,817&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">484&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">41,299&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,035&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(18)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,533&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">115&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,648&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">603,822&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,747&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(398)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">610,171&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:6pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"/><td style="width:29.811%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.754%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="21" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized Loss Position For:</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Less than 12 Months</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12 Months or Greater</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">49,525&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(363)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,181&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(9)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,706&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(372)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,962&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,962&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,749&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">260&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,009&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,128&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,784&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(16)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,912&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(18)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,293&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,293&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><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;"/></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">72,657&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(372)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,225&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(26)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">76,882&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(398)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded gross credit losses and gross credit recoveries on debt securities totaling $0 and $85,000, respectively, for the three-month period ended June 28, 2020, and $160,000 and $85,000, respectively, for the six-month period ended June 28, 2020. No credit losses or recoveries on debt securities were recorded for the three-month or six-month periods ended June 30, 2019.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statements of Operations.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"/><td style="width:78.441%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.559%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">160&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Decreases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(85)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Write-offs </span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">75&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded gross realized gains and gross realized losses on the sale of debt securities totaling $962,000 and $7,000, respectively, for the three-month period ended June&#160;28, 2020, and $394,000 and $12,000, respectively, for the three-month period ended June&#160;30, 2019. The Company recorded gross realized gains and gross realized losses on the sale of debt securities totaling $2,826,000 and $21,000, respectively, for the six-month period ended June 28, 2020, and $458,000 and $36,000, respectively, for the six-month period ended June 30, 2019. These 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, are recorded in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table presents the effective maturity dates of the Company&#8217;s available-for-sale investments as of June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:34.988%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td colspan="3" style="display:none;"/><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:8.387%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&lt;1 year</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1-2 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2-3 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3-4 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4-5 Years</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">81,987&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">102,034&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,391&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">236,660&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">34,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">138,612&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">58,062&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">230,692&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,311&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">13,750&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23,308&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,241&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">91,610&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,869&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">9,218&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,430&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,517&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><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:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">143,084&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">243,567&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">208,888&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,391&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,241&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">610,171&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864107832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventories</a></td>
<td class="text">Inventories<div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:61.011%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:16.128%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:16.131%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Raw materials</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">20,736&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,285&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Work-in-process</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,111&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,503&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Finished goods</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">28,106&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,473&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">52,953&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">60,261&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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 $7,718,000 and $8,783,000 for the three-month and six-month periods ended June 28, 2020, respectively, which reduced the carrying value of the inventories to their net realizable value. The charges for the three-month period ended June 28, 2020 were due to lower projected sales of excess inventories as a result of deteriorating global economic conditions from the COVID-19 pandemic.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI http://asc.fasb.org/topic&amp;trid=2126998<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862648600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text">Leases<div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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.  There were no options to extend or terminate that were included in the determination of the lease term for the leases outstanding as of June&#160;28, 2020.  Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index.  There were no restrictions or covenants for the leases outstanding as of June&#160;28, 2020.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The total operating lease expense for the three-month periods ended June&#160;28, 2020 and June 30, 2019 was $2,147,000 and $1,742,000, respectively.  The total operating lease cash payments for the three-month periods ended June&#160;28, 2020 and June 30, 2019 were $2,091,000 and $1,669,000, respectively. 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 $23,000 and $64,000 for the three-month periods ended June&#160;28, 2020 and June 30, 2019, respectively.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The total operating lease expense for the six-month periods ended June 28, 2020 and June 30, 2019 was $4,053,000 and $3,227,000, respectively. The total operating lease cash payments for the six-month periods ended June 28, 2020 and June 30, 2019 were $3,954,000 and $3,070,000, respectively. 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 $62,000 and $233,000 for the six-month periods ended June 28, 2020 and June 30, 2019, respectively. </span></div><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:81.748%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:2.728%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.324%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amount </span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Remainder of fiscal 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,335&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2021</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,340&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2022</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,169&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2023</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,973&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2024</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,391&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2025</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,322&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,462&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31,992&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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 $28,836,000 and $17,973,000 as of June&#160;28, 2020 and December 31, 2019, respectively.  The Company did not have any leases that had not yet commenced but that created significant rights and obligations as of June&#160;28, 2020 or June 30, 2019. </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The weighted-average discount rate was 4.1% and 4.8% for the leases outstanding as of June&#160;28, 2020 and June 30, 2019, respectively.  The weighted-average remaining lease term was 5.3 and 3.6 years for the leases outstanding as of June&#160;28, 2020 and June 30, 2019, respectively. </span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As part of the Company's restructuring plan (refer to Note 16), management closed ten leased offices as of June 28, 2020 prior to the end of their lease terms. The carrying value of the lease assets associated with these ten offices has been reduced to zero as of June 28, 2020, resulting in operating lease asset impairment charges of $2,534,000 for the three-month period ended June 28, 2020 that are included in "Restructuring charges" on the Consolidated Statements of Operations. Management is currently negotiating early contract terminations for the remaining lease liability obligations associated with these abandoned offices. </span></div>The Company owns a building adjacent to its corporate headquarters that was partially occupied by a tenant for a portion of the current year. This lease was terminated prior to the end of its lease term during the three-month period ended June 28, 2020. Rental income was $0 and $81,000 for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019, respectively, and $77,000 and $158,000 for the six-month periods ended June 28, 2020 and June 30, 2019, respectively. The Company is now fully occupying this building for its operations.<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470970917208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Notes)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text">Goodwill<div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"/><td style="width:82.388%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.876%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">243,445&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,009)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">242,436&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The significant decline in business levels resulting from the COVID-19 pandemic triggered a review of long-lived assets, including goodwill, for potential impairment during the three-month period ended June 28, 2020. Based upon this assessment, management concluded that the reporting unit fair value was not less than its carrying value, and therefore no goodwill impairment charge was recognized for the three-month and six-month periods ended June 28, 2020. Factors that management considered in this assessment included macroeconomic conditions, industry and market conditions, overall financial performance (both current and projected), changes in management or strategy, changes in the composition or carrying value of net assets, and market capitalization.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=2144439<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862297496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets</a></td>
<td class="text">Intangible Assets<div style="margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Amortized intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.561%;"><tr><td style="width:1.0%;"/><td style="width:50.276%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.418%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.534%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.418%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.534%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.420%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Distribution networks</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Completed technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21,917&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">11,035&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,882&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Customer relationships</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,578&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,795&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,783&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">In-process technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,300&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,300&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-compete agreements</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">710&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">409&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">301&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Trademarks</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">110&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">39&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">71&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">73,675&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">56,338&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">17,337&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Distribution networks</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Completed technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31,987&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">9,160&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,827&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Customer relationships</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,407&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,402&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,005&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">In-process technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,200&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,200&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-compete agreements</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">710&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">350&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">360&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Trademarks</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">110&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">98&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">93,474&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">53,984&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">39,490&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:5pt;"><span><br/></span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The significant decline in business levels resulting from the COVID-19 pandemic triggered a review of long-lived assets, including intangible assets, for potential impairment during the three-month period ended June 28, 2020. 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded as the amount by which the carrying value of the asset exceeds its fair value.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Based upon this assessment, management concluded that certain of the Company's finite-lived intangible assets failed the recoverability test, and recorded impairment charges for these assets equal to the amount by which their carrying value exceeded their fair value. The Company also measured the fair value and recorded an impairment charge for its indefinite-lived intangible asset related to in-process technologies. The fair values were established, with the assistance of an outside valuation advisor, using the income approach based upon a discounted cash flow model that estimated future revenue streams and expenses attributable to those revenue streams provided by management.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">This review resulted in intangible asset impairment charges totaling $19,571,000 for the three-month period ended June 28, 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab Co. Ltd. ("Sualab") as a result of the deteriorating global economic conditions from the COVID-19 pandemic. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $10,070,000, $5,900,000, and $3,382,000, respectively. In addition, customer relationships acquired from EnShape GmbH that had a gross carrying value of $447,000 and accumulated amortization of $228,000 on the measurement date were reduced to zero, resulting in an impairment charge of $219,000.</span></div><div style="text-align:justify;margin-top:5pt;"><span><br/></span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;">As of June&#160;28, 2020, estimated future amortization expense related to intangible assets was as follows (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:80.723%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:14.545%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amount</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Remainder of fiscal 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,686&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2021</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,272&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2022</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,902&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2023</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,211&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2024</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,697&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2025</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,374&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,895&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">15,037&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">In-process technology is an indefinite-lived intangible asset until the technology is finalized, at which point it is amortized over its estimated useful life.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -URI http://asc.fasb.org/topic&amp;trid=2144416<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864097816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Warranty Obligations<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantiesDisclosuresAbstract', window );"><strong>Product Warranties 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="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyDisclosureTextBlock', window );">Warranty Obligations</a></td>
<td class="text">Warranty Obligations<div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company records the estimated cost of fulfilling product warranties at the time of sale based upon historical costs to fulfill claims.  Obligations may also be recorded subsequent to the time of sale whenever specific events or changes in circumstances impacting product quality become known that would not have been taken into account using historical data.  While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of our component suppliers and third-party contract manufacturers, the Company&#8217;s warranty obligation is affected by product failure rates, material usage, and service delivery costs incurred in correcting a product failure.  An adverse change in any of these factors may result in the need for additional warranty provisions. Warranty obligations are included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets.</span></div><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:79.871%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:16.129%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,713&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Provisions for warranties issued during the period</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,493&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fulfillment of warranty obligations</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(927)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,279&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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_ProductWarrantiesDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantiesDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for standard and extended product warranties and other product guarantee contracts, including a tabular reconciliation of the changes in the guarantor's aggregate product warranty liability for the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -URI http://asc.fasb.org/topic&amp;trid=2155896<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470863894376">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock', window );">Derivative Instruments</a></td>
<td class="text">Derivative Instruments<div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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.  Currently, the Company enters into economic hedges to manage this risk.  The economic hedges utilize foreign currency forward contracts with maturities of up to 45 days 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:45.222%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:11.304%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:10.134%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.304%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:9.846%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Currency</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Notional<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">USD<br/>Equivalent</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Notional<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">USD<br/>Equivalent</span></td></tr><tr><td colspan="12" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Korean Won</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">138,690,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">115,604&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">161,951,500&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">139,688&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Euro</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">56,137&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">18,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">20,249&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Mexican Peso</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">184,700&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,051&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">80,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,223&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Japanese Yen</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">600,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,587&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">575,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,291&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Hungarian Forint</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,085,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,443&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">870,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,962&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">British Pound</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,940&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,406&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,700&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,569&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Taiwanese Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,765&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,455&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37,450&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,256&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Canadian Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,130&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">827&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,300&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Singapore Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,090&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">784&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">845&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">628&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:11.049%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:15.008%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.489%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.970%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.495%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset Derivatives</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liability Derivatives</span></td><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-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair Value</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair Value</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sheet<br/>Location</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sheet<br/>Location</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</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;"/><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;"/></tr><tr><td colspan="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:<br/></span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Prepaid&#160;expenses&#160;and other current assets</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">857&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accrued expenses</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table presents 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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:18.381%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.826%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.826%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.636%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:16.768%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.640%;"/><td style="width:1.0%;"/></tr><tr><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset Derivatives</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liability Derivatives</span></td><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:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">857&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">857&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div><span><br/></span></div><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Information regarding the effect of derivative instruments on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:21.313%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:23.953%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:10.903%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:10.903%;"/><td style="width:1.0%;"/><td colspan="3" style="display:none;"/><td style="width:1.0%;"/><td style="width:9.730%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.999%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Location in Financial Statements</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</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;"/><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="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gains (losses) recognized in current operations</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">60&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(439)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(8,180)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">66&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -URI http://asc.fasb.org/topic&amp;trid=2229140<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864084056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue Recognition</a></td>
<td class="text">Revenue Recognition<div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:36.011%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.626%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Americas</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">68,966&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">77,408&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">129,214&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">142,178&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Europe</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">35,987&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">59,620&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">84,569&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">119,158&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Greater China</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31,898&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">35,816&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">58,301&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">58,632&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">32,246&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">26,203&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">64,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">52,563&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">169,097&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">199,047&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">336,332&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">372,531&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div><span><br/></span></div><div><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:36.011%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.626%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">158,807&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">173,368&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">311,662&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">334,420&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,290&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">25,679&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">24,670&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,111&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">169,097&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">199,047&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">336,332&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">372,531&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 Sheet and amounted to $10,888,000 and $3,963,000 as of June&#160;28, 2020 and December 31, 2019, respectively.</span></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);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 potential credit losses.  Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">On January 1, 2020, the Company adopted Accounting Standards Update (ASU) 2016-13, &#8220;Measurement of Credit Losses on Financial Instruments,&#8221;  using the modified-retrospective approach, which requires the Company to apply the standard on a prospective basis with a cumulative-effect adjustment to retained earnings as of the beginning of the period in which the guidance is effective. The Company did not record an adjustment to retained earnings as this ASU did not have a material impact on the Company's consolidated allowance for credit losses. </span></div><div style="text-align:justify;margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded credit losses on accounts receivable of $300,000 and $600,000 for the three-month and six-month periods ended June&#160;28, 2020, respectively.  The Company recorded credit losses on accounts receivable of $90,000 for the three-month and six-month periods ended June&#160;30, 2019. The Company's estimate of expected credit losses takes into account the deteriorating global economic conditions from the COVID-19 pandemic.</span></div><div style="text-align:justify;margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"/><td style="width:78.441%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.559%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">530&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">600&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Write-offs </span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(186)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">945&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"/><td style="width:78.441%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.559%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,432&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to deferred revenue and customer deposits</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">57,904&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Recognition of revenue</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(25,493)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(105)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46,738&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);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, as our contracts have an original expected duration of less than one year.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130551-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130556-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130550-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130558-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864580808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_CompensationRelatedCostsGeneralTextBlock', window );">Stock-Based Compensation Expense</a></td>
<td class="text">Stock-Based Compensation Expense<div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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").  As of June&#160;28, 2020, the Company had 16,335,000 shares available for grant 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:id3VybDovL2RvY3MudjEvZG9jOmVjMzEwZDVkMTQxNTQ3OTFhY2FlMDNlZWUzYmI3M2U2L3NlYzplYzMxMGQ1ZDE0MTU0NzkxYWNhZTAzZWVlM2JiNzNlNl83Ni9mcmFnOmE1NGU1M2Q2ZmZmZTQ1N2U5NDM2OThjYWY2YzhkZDhkL3RleHRyZWdpb246YTU0ZTUzZDZmZmZlNDU3ZTk0MzY5OGNhZjZjOGRkOGRfMzk2_c9b27df8-2451-462e-927f-008a5aa7ff1c">four</span> or five years based upon continuous service and expire ten years from the grant date.  RSUs generally vest upon three years of continuous employment or incrementally over such three-year period.  Participants are not entitled to dividends on RSUs. </span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020:</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:36.799%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.373%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.323%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.226%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.083%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term&#160;(in&#160;years)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Aggregate<br/>Intrinsic<br/>Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Outstanding as of December 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,899&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37.95&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Granted</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">975&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">51.58&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Exercised</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,822)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">26.47&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Forfeited or expired</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(421)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50.28&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Outstanding as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">11,631&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">40.45&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.98</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">212,847&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Exercisable as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,331&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31.59&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5.81</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">144,694&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Options vested or expected to vest as of June 28, 2020 (1)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,683&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">39.58&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.85</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">204,795&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="padding-left:36pt;text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#160;(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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.327%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.626%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months&#160;Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Risk-free rate</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1.6&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2.7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1.6&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2.7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected dividend yield</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.43&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.39&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.43&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.39&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected volatility</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected term (in years)</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.0</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5.2</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.0</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5.3</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Risk-free rate</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The risk-free rate was based upon a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Expected dividend yield</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Generally, the current dividend yield is 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Expected volatility</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The expected volatility was based upon a combination of historical volatility of&#160;the Company&#8217;s 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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Expected term</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The weighted-average grant-date fair values of stock options granted during the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $19.13 and $18.68, respectively. The weighted-average grant-date fair values of stock options granted during the six-month periods ended June 28, 2020 and June 30, 2019 were $18.52 and $18.59, respectively.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The total intrinsic values of stock options exercised for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $39,359,000 and $14,220,000, respectively.  The total intrinsic values of stock options exercised for the six-month periods ended June 28, 2020 and June 30, 2019 were $53,814,000 and $36,799,000, respectively. The total fair values of stock options vested for the three-month periods ended June&#160;28, 2020 and June&#160;30, 2019 were $1,287,000 and $887,000, respectively. The total fair values of stock options vested for the six-month periods ended June 28, 2020 and June 30, 2019 were $37,951,000 and $30,859,000, respectively.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June 28, 2020: </span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:64.520%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:14.812%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.938%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares<br/>(in thousands)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Nonvested as of December 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">150&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">48.63&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Granted</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">432&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">51.53&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Vested</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Forfeited or expired</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(21)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50.54&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Nonvested as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">561&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50.79&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The weighted-average grant-date fair values of RSUs granted during the three-month and six-month periods ended June 28, 2020 were $56.97 and $51.53, respectively.  There were no RSUs that vested during the three-month and six-month periods ended June 28, 2020.  There were no RSUs granted or vested during the three-month and six-month periods ended June 30, 2019.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company stratifies its employee population into two groups: one consisting of senior management and another consisting of all other employees.  The Company currently applies an estimated annual forfeiture rate of 7% to all stock-based awards for senior management and a rate of 12% for all other employees.  Each year during the first quarter, the Company revises its forfeiture rate.  This resulted in an increase to compensation expense of $1,787,000 in 2020 and a decrease to compensation expense of $499,000 in 2019.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">As of June&#160;28, 2020, total unrecognized compensation expense related to non-vested equity awards, including stock options and RSUs, was $65,128,000, which is expected to be recognized over a weighted-average period of 2.0 years.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the three-month period ended June&#160;28, 2020 were $8,018,000, which includes credits of $1,401,000 relating to grants cancelled as a result of the Company's workforce reduction, and $1,277,000, respectively, and for the three-month period ended June&#160;30, 2019 were $10,967,000 and $1,813,000, respectively. The total stock-based compensation expense and the related income tax benefit recognized for the six-month period ended June 28, 2020 were $22,808,000 and $3,841,000, respectively, and for the six-month period ended June 30, 2019 were $23,248,000 and $4,035,000, respectively. No compensation expense was capitalized as of June&#160;28, 2020 or December&#160;31, 2019.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.912%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.041%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cost of revenue</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">363&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">329&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">717&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">780&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Research, development, and engineering</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,401&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,550&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7,767&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,017&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Selling, general, and administrative</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,254&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7,088&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,324&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,451&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,967&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,808&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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_CompensationRelatedCostsGeneralTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for compensation costs, including compensated absences accruals, compensated absences liability, deferred compensation arrangements and income statement compensation items.  Deferred compensation arrangements may include a description of an arrangement with an individual employee, which is generally an employment contract between the entity and a selected officer or key employee containing a promise by the employer to pay certain amounts at designated future dates, usually including a period after retirement, upon compliance with stipulated requirements. This type of arrangement is distinguished from broader based employee benefit plans as it is usually tailored to the employee. Disclosure also typically includes the amount of related compensation expense recognized during the reporting period, the number of shares (units) issued during the period under such arrangements, and the carrying amount as of the balance sheet date of the related liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -URI http://asc.fasb.org/topic&amp;trid=2127225<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6409950&amp;loc=d3e20396-108366<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationRelatedCostsGeneralTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>33
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862331480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock Repurchase Program<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">Stock Repurchase Program</a></td>
<td class="text">Stock Repurchase ProgramIn October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock.  As of June&#160;28, 2020, the Company repurchased 2,816,000 shares at a cost of $121,348,000 under this program, including 1,215,000 shares at a cost of $51,036,000 during the three-month period ended March 29, 2020, leaving a remaining balance of $78,652,000. No shares were repurchased during the three-month period ended June 28, 2020. On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock.  Purchases under this March 2020 program will commence upon completion of the October 2018 program.  The Company may repurchase shares under these programs in future periods depending upon a variety of factors, including, among other things, the impact of dilution from employee equity 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></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -URI http://asc.fasb.org/topic&amp;trid=2208762<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864138792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Taxes<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text">Taxes<div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">A reconciliation of the United States 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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:41.128%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:11.888%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.450%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.888%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.456%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months&#160;Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(21)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">State income taxes, net of federal benefit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign tax rate differential</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(7)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(7)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Tax credit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Discrete tax benefit related to stock options</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(191)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(29)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">141&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">17&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Tax rate adjustment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">18&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income tax expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(51)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr></table></div><div style="text-align:justify;margin-top:6pt;"><span><br/></span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company is tax resident in numerous jurisdictions around the world and has identified its major tax jurisdictions as the United States, Ireland, and China.  The statutory tax rate is 12.5% in Ireland and 25% in China, 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 5 percentage points</span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%;"> </span><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">for both the three-month and six-month periods ended June 28, 2020, and 7 percentage points for the same periods in 2019. 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.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company recorded discrete tax benefits arising from the difference between the deduction for tax purposes and the compensation cost recognized for financial reporting purposes from stock exercises that resulted in a favorable impact to the effective tax rate of 191 and 29 percentage points for the three-month and six-month periods ended June 28, 2020, respectively, and 2 and 4 percentage points for the same periods in 2019. In addition, the Company recorded discrete tax expenses related to the final true-up of the prior year tax accrual upon filing the related tax return that resulted in an unfavorable impact to the effective tax rate of 141 and 17 percentage points for the three-month and six-month periods ended June 28, 2020, respectively.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Excluding the impact of these discrete items, the Company&#8217;s effective tax rate was a benefit of 1% of pre-tax loss and an expense of 19% of pre-tax income for the three-month and six-month periods in 2020, respectively, compared to an expense of 17% and 16% of pre-tax income for the same periods in 2019.  The increase in the effective tax rate, excluding the impact of discrete items, for the six-month period from 16% in 2019 to 19% in 2020 was due to more of the Company's profits being earned and taxed in higher tax jurisdictions. This adjustment to the effective tax rate resulted in an 18 percentage-point impact on the effective tax rate for the three-month period ended June 28, 2020.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">During the six-month period ended June&#160;28, 2020, the Company recorded a $710,000 increase in reserves for income taxes, net of deferred tax benefit.  Estimated interest and penalties included in these amounts totaled $283,000 for the six-month period ended June&#160;28, 2020.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 $13,330,000 as of June&#160;28, 2020, which included $12,302,000 classified as a non-current liability and $1,028,000 recorded as an increase to a non-current deferred tax liability.  The amount of gross interest and penalties included in these balances was $1,301,000.  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.</span></div>The Company has defined its major tax jurisdictions as the United States, Ireland, and China, and within the United States, Massachusetts.  Within the United States, the tax years 2016 through 2019 remain open to examination by the Internal Revenue Service ("IRS") and various state tax authorities.  The tax years 2015 through 2019 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. The Company has recently been notified that it is under audit by the IRS for the tax year 2017. Management believes the Company is adequately reserved for this audit.<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32857-109319<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330215-122817<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32809-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI http://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862653352">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Weighted-Average Shares</a></td>
<td class="text">Weighted-Average Shares<div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.912%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.181%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.479%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">172,283&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">171,318&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">172,345&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">171,209&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Effect of dilutive equity awards</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,130&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,154&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,319&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">172,283&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">175,448&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">175,499&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">175,528&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Stock options to purchase 5,801,000 and 6,328,000 shares of common stock, on a weighted-average basis, were outstanding during the three-month and six-month periods ended June&#160;28, 2020, respectively, and 6,113,000 and 5,503,000 for the same periods in 2019, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 27,000 and 14,000 shares of common stock, on a weighted-average basis, were outstanding during the three-month and six-month periods ended June&#160;28, 2020. Additionally, because the Company recorded a cumulative net loss during the three-month period ended June 28, 2020, potential common stock equivalents of 3,120,000 were not included in the calculation of diluted net loss per share for this period. There were no anti-dilutive restricted stock units outstanding, on a weighted-average basis, during the three-month and six-month periods ended June 30, 2019, 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_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109243012&amp;loc=SL65017193-207537<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI http://asc.fasb.org/topic&amp;trid=2144383<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862555048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock', window );">Restructuring Charges</a></td>
<td class="text">Restructuring Charges<div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">On May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The restructuring plan included a global workforce reduction of approximately 8% and office closures. </span></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The Company estimates the total restructuring charges from these actions to be approximately $16,445,000, of which $14,798,000 has been recorded in the three-month period ended June 28, 2020 and included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations. The remaining charges are expected to be recognized during the second half of 2020. The following table summarizes the restructuring charges (in thousands):</span></div><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;margin-bottom:6pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:57.883%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.767%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.381%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:17.769%;"/><td style="width:1.0%;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total Amount Expected to be Incurred</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Incurred in the Three-months Ended June 28, 2020</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">One-time termination benefits</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">11,387&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,386&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contract termination costs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,995&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,995&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other associated costs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,063&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">417&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">16,445&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,798&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><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><div style="text-align:justify;"><span><br/></span></div><div style="text-align:justify;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">One-time termination benefits include severance, health insurance, and outplacement services for 181 employees who were either terminated or have been notified that they will be terminated at a future date. For employees not required to render service beyond a minimum retention period, the one-time termination benefits were recognized in the three-month period ended June 28, 2020. Otherwise, these benefits, including retention bonuses for selected employees, are being recognized over the service period, which is not expected to exceed the fourth quarter of 2020.</span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Contract termination costs include remaining lease liability obligations and operating lease asset impairments for offices closed prior to the end of the contractual lease term. These costs also include the write-off of leasehold improvements and other equipment related to these abandoned offices that had no alternative use. These contract termination costs were recognized in the three-month period ended June 28, 2020 when the Company ceased using the property for economic benefit. Other associated costs primarily include legal fees related to the employee termination actions, which are being recognized when the services are performed. </span></div><div style="text-align:justify;margin-top:9pt;margin-bottom:16pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:6pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.327%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.204%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.384%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.181%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.384%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.888%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.384%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.648%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">One-time Termination Benefits</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contract Termination Costs</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other Associated Costs</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Restructuring charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,386&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,995&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">417&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,798&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash payments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4,654)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(26)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(9)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4,689)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-cash restructuring charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(3,145)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(3,145)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">60&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">72&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,792&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">829&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">415&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7,036&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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><span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -URI http://asc.fasb.org/topic&amp;trid=2175745<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862278872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text">Subsequent EventsOn July 29, 2020, the Company&#8217;s Board of Directors declared a cash dividend of $0.055 per share.  The dividend is payable on August 28, 2020 to all shareholders of record as of the close of business on August 14, 2020.<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -URI http://asc.fasb.org/topic&amp;trid=2122774<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470960559464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text"><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Money market instruments, as well as certificates of deposit and debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost.  Certificates of deposit and 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.  It is the Company&#8217;s policy to invest in debt securities with effective maturities that do not exceed ten years.</span></div><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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 and credit losses, recorded in shareholders&#8217; equity as other comprehensive income (loss).  Realized gains and losses are included in current operations, along with the amortization of the discount or premium on debt securities arising at acquisition, and are calculated using the specific identification method.  The Company&#8217;s limited partnership interest is accounted for using the cost method because the Company&#8217;s investment is less than 5% of the partnership and the Company has no influence over the partnership&#8217;s operating and financial policies.  The carrying value of this investment has been reduced to zero, and therefore, distributions are recorded as investment income as they occur.  </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Management monitors the carrying value of its investments in debt securities compared to their fair value to determine whether a credit loss or other type of impairment has occurred.  If the fair value of a debt security is less than its amortized cost, the Company assesses whether the decline has resulted from a credit loss or other factors.  In assessing whether a credit loss exists, the Company compares the present value of the cash flows expected to be collected from the security with the amortized cost basis of the security.  If the present value of the cash flows expected to be collected is less than the amortized cost basis of the security, then a credit loss exists and an allowance for credit losses is recorded.  The allowance for credit losses is limited by the amount that the fair value is less than the amortized cost basis of the security.  Credit losses on impaired securities continue to be measured in subsequent periods, using the present value of expected future cash flows, and changes in the expected credit losses are recorded in current operations.  Credit losses and recoveries are included in "Other income (expense)" on the Consolidated Statement of Operations.  When developing an estimate of the expected credit losses, the Company considers all available information relevant to assessing the collectability of cash flows. This information includes internal and external factors, historical and current events, reasonable and supportable forecasts including management's expectations of future economic conditions, the type of security, the credit rating of the security, the size of the loss position, as well as other relevant information. </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">An impairment is recognized as a write-down if (i)&#160;the Company has the intent to sell the security or (ii)&#160;it is more likely than not that the Company will be required to sell the security before recovery of the entire amortized cost basis.  If impairment is considered upon condition (i)&#160;or (ii)&#160;described above, the debt security's amortized cost basis is written-down to its fair value and the impairment is recognized in current operations. Subsequent increases in the fair value of the debt securities after the write-down are included in shareholders' equity as other comprehensive income. The differences between the new amortized cost basis and the cash flows expected to be collected are accreted as interest income. </span></div><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Unrealized losses, that have not been recorded through an allowance for credit losses or write-down of the debt security, are recorded in shareholders' equity as other comprehensive loss, net of the applicable taxes.</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="top.Show.showAR( this, 'defref_us-gaap_ReceivablesPolicyTextBlock', window );">Accounts Receivable</a></td>
<td class="text"><div style="text-align:justify;margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon 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 potential credit losses and records bad debt expense in current operations when it determines receivables are at risk for collection based upon the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, general economic and industry conditions, and reasonable forecasts about the future, 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 reversal of the bad debt expense.  Credit losses are included in "Selling, general, and administrative expenses" on the Consolidated Statement 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="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">New Pronouncements</a></td>
<td class="text">New Pronouncements<div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration: underline;">Accounting Standards Update (ASU) 2019-12, "Simplifying the Accounting for Income Taxes"</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">ASU 2019-12 applies to all entities within the scope of Topic 740, Income Taxes.  The amendments in this ASU simplify the accounting for income taxes by removing the following exceptions: 1) exception to the incremental approach for intraperiod tax allocation when there is a loss from continuing operations and income or a gain from other items; 2) exception to the requirement to recognize a deferred tax liability for equity method investments when a foreign subsidiary becomes an equity method investment; 3) exception to the ability not to recognize a deferred tax liability for a foreign subsidiary when a foreign equity method investment becomes a subsidiary; and 4) exception to the general methodology for calculating income taxes in an interim period when a year-to-date loss exceeds the anticipated loss for the year.  The amendments in this ASU also simplify the accounting for income taxes by doing the following: 1) requiring that an entity recognize a franchise tax that is partially based on income as an income-based tax and account for any incremental amount incurred as a non-income-based tax; 2) requiring that an entity evaluate when a step up in the tax basis of goodwill should be considered part of the business combination in which the book goodwill was originally recognized and when it should be considered a separate transaction; 3) specifying that an entity is not required to allocate the consolidated amount of current and deferred tax expense to a legal entity that is not subject to tax in its separate financial statements; and 4) requiring that an entity reflect the effect of an enacted change in tax laws or rates in the annual effective tax rate computation in the interim period that included the enacted date.  The amendments in this ASU are effective for public companies for annual periods, and interim periods within those annual periods, beginning after December 15, 2020.  Early adoption is permitted; however, an entity that elects to early adopt the amendments must adopt all the amendments in the same period. The amendments in this ASU related to separate financial statements of legal entities that are not subject to tax should be applied on a retrospective basis for all periods presented. The amendments related to changes in ownership of foreign equity method investments or foreign subsidiaries should be applied on a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. The amendments related to franchise taxes that are partially based on income should be applied on either a retrospective basis for all periods presented or a modified retrospective basis through a cumulative-effect adjustment to retained earnings as of the beginning of the fiscal year of adoption. All other amendments should be applied on a prospective basis.   Management does not expect ASU 2019-12 to have a material impact on the Company's consolidated financial statements and disclosures.</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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)"</span></div><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform.  The amendments in this ASU 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, 2022, except for hedging relationships existing as of December 31, 2022, that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship.  The amendments in this ASU are effective for all entities as of March 12, 2020 through December 31, 2022.  Management does not expect ASU 2020-04 to have a material impact on the Company's consolidated 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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4273-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for receivable. Includes, but is not limited to, accounts receivable and financing receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121611835&amp;loc=d3e5033-111524<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10178-111534<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10149-111534<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10133-111534<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864087528">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 required to be measured at fair value on a recurring basis as of June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:49.098%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.812%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.812%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.814%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level 1)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Significant Other<br/>Observable<br/>Inputs (Level 2)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unobservable Inputs (Level 3)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Assets:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Money market instruments</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,222&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">236,660&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">230,692&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">91,610&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,517&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right: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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right: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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contingent consideration liabilities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock', window );">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation</a></td>
<td class="text">The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. was written down to zero as of December 31, 2019 resulting from a lower level of revenue in the Americas' automotive industry, and the balance remains at zero as of June 28, 2020. The undiscounted potential outcomes related to future contingent consideration range from $0 to $2,500,000 based upon certain revenue levels over the next two 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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19279-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470869968600">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock', window );">Components of Cash, Cash Equivalents, and Investments</a></td>
<td class="text"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:61.011%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:16.128%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:16.131%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">235,799&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">155,498&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Money market instruments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,222&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">15,933&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash and cash equivalents</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">286,021&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">171,431&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,311&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">66,680&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">65,624&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">34,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">92,914&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,869&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,294&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,630&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Certificate of deposit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,328&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">143,084&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">240,470&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">196,674&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">216,334&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">194,412&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">146,474&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">41,299&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46,403&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,914&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,648&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">16,005&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,322&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current investments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">467,087&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">433,452&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">896,192&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">845,353&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock', window );">Summary of Available-for-Sale Investments</a></td>
<td class="text"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:6pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:41.841%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:11.636%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.343%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.489%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.492%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amortized<br/>Cost</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Current:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">49,899&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">412&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,311&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,065&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">221&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(38)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">33,480&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">538&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">34,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,787&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">82&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,869&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,643&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">194,330&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,345&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">196,674&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">192,233&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,513&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(334)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">194,412&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">40,817&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">484&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">41,299&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,035&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(18)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,533&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">115&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,648&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">603,822&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,747&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(398)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">610,171&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock', window );">Gross Unrealized Losses and Fair Values for Available-for-Sale Investments</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:6pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"/><td style="width:29.811%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.751%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.754%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="21" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized Loss Position For:</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Less than 12 Months</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12 Months or Greater</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair&#160;Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">49,525&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(363)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,181&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(9)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,706&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(372)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,962&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,962&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,749&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">260&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,009&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,128&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,784&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(16)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,912&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(18)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,293&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,293&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><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;"/></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">72,657&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(372)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,225&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(26)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">76,882&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(398)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock', window );">Schedule of Allowance for Credit Loss Activity</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"/><td style="width:78.441%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.559%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">160&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Decreases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(85)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Write-offs </span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">75&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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="top.Show.showAR( this, 'defref_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock', window );">Effective Maturity Dates of Available-for-Sale Investments</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table presents the effective maturity dates of the Company&#8217;s available-for-sale investments as of June&#160;28, 2020 (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:34.988%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.795%;"/><td style="width:1.0%;"/><td colspan="3" style="display:none;"/><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:8.387%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&lt;1 year</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1-2 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2-3 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3-4 Years</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4-5 Years</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Corporate bonds</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">81,987&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">102,034&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,391&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">236,660&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Treasury bills</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">34,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">138,612&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">58,062&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">230,692&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset-backed securities</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,311&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">13,750&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23,308&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,241&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">91,610&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><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="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sovereign bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,869&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">9,218&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,430&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,517&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Agency bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,054&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Municipal bonds</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,638&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/><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:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">143,084&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">243,567&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">208,888&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,391&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,241&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">610,171&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Components of cash cash equivalents and investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock</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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922900-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27290-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470863982424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Schedule of Inventories</a></td>
<td class="text"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:61.011%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:16.128%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:16.131%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Raw materials</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">20,736&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,285&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Work-in-process</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,111&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,503&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Finished goods</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">28,106&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">27,473&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">52,953&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">60,261&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470959556328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Lessee, Operating Lease, Liability, Maturity</a></td>
<td class="text"><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:81.748%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:2.728%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.324%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amount </span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Remainder of fiscal 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,335&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2021</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,340&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2022</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,169&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2023</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,973&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2024</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,391&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2025</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,322&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,462&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31,992&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862587080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Schedule of Goodwill</a></td>
<td class="text"><div style="margin-top:9pt;"><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:14pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.269%;"><tr><td style="width:1.0%;"/><td style="width:82.388%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.536%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.876%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">243,445&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,009)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">242,436&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862653912">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Intangible Assets</a></td>
<td class="text"><div style="margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Amortized intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.561%;"><tr><td style="width:1.0%;"/><td style="width:50.276%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.418%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.534%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.418%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.534%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.420%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Distribution networks</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Completed technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21,917&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">11,035&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,882&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Customer relationships</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,578&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,795&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,783&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">In-process technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,300&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,300&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-compete agreements</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">710&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">409&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">301&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Trademarks</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">110&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">39&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">71&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">73,675&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">56,338&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">17,337&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="height:9pt;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Times New Roman',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Distribution networks</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,060&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Completed technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31,987&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">9,160&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,827&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Customer relationships</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,407&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6,402&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,005&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">In-process technologies</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,200&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,200&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-compete agreements</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">710&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">350&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">360&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Trademarks</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">110&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">98&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">93,474&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">53,984&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">39,490&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Intangible Assets, Future Amortization Expense</a></td>
<td class="text"><div style="text-align:justify;margin-top:5pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;">As of June&#160;28, 2020, estimated future amortization expense related to intangible assets was as follows (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:80.723%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:14.545%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);text-decoration: underline;">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Amount</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Remainder of fiscal 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,686&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2021</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,272&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2022</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,902&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2023</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,211&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2024</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,697&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2025</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,374&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,895&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">15,037&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862281224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Warranty Obligations (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantiesDisclosuresAbstract', window );"><strong>Product Warranties 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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Changes in Warranty Obligations</a></td>
<td class="text"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:79.871%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:16.129%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,713&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Provisions for warranties issued during the period</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,493&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fulfillment of warranty obligations</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(927)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,279&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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_ProductWarrantiesDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantiesDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865455736">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_OutstandingForwardContractsTableTextBlock', window );">Outstanding Forward Contracts Table</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:45.222%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:11.304%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:10.134%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.304%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:9.846%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Currency</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Notional<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">USD<br/>Equivalent</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Notional<br/>Value</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">USD<br/>Equivalent</span></td></tr><tr><td colspan="12" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Korean Won</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">138,690,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">115,604&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">161,951,500&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">139,688&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Euro</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">56,137&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">18,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">20,249&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Mexican Peso</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">184,700&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,051&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">80,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,223&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Japanese Yen</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">600,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,587&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">575,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,291&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Hungarian Forint</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,085,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,443&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">870,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,962&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">British Pound</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,940&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,406&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,700&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,569&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Taiwanese Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">42,765&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,455&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37,450&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,256&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Canadian Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,130&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">827&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,300&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,000&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Singapore Dollar</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,090&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">784&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">845&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">628&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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="top.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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:11.049%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:15.008%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.489%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:7.970%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.495%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset Derivatives</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-bottom:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liability Derivatives</span></td><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-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair Value</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Fair Value</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sheet<br/>Location</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Sheet<br/>Location</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</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;"/><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;"/></tr><tr><td colspan="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:<br/></span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Economic hedge forward contracts</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Prepaid&#160;expenses&#160;and other current assets</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">857&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Accrued expenses</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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="top.Show.showAR( this, 'defref_us-gaap_OffsettingAssetsTableTextBlock', window );">Offsetting Assets</a></td>
<td class="text"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table presents 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:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:18.381%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.826%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.826%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.636%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:16.768%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.662%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.640%;"/><td style="width:1.0%;"/></tr><tr><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Asset Derivatives</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="15" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Liability Derivatives</span></td><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:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">December 31, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">857&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">857&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">458&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock', window );">Derivative Instruments, Gain (Loss)</a></td>
<td class="text"><div><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">Information regarding the effect of derivative instruments on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.707%;"><tr><td style="width:1.0%;"/><td style="width:21.313%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:23.953%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:10.903%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:10.903%;"/><td style="width:1.0%;"/><td colspan="3" style="display:none;"/><td style="width:1.0%;"/><td style="width:9.730%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.533%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:8.999%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" rowspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Location in Financial Statements</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:9pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</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;"/><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="18" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-style:italic;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Gains (losses) recognized in current operations</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">60&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(439)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(8,180)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">66&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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_OutstandingForwardContractsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Outstanding forward contracts table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_OutstandingForwardContractsTableTextBlock</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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225877-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4E<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5624181-113959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5618551-113959<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4C<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5624171-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5624163-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865986984">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock', window );">Revenue from External Customers by Geographic Areas</a></td>
<td class="text"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 upon the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:36.011%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.626%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Americas</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">68,966&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">77,408&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">129,214&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">142,178&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Europe</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">35,987&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">59,620&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">84,569&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">119,158&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Greater China</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31,898&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">35,816&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">58,301&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">58,632&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">32,246&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">26,203&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">64,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">52,563&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">169,097&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">199,047&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">336,332&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">372,531&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock', window );">Revenue from External Customers by Products and Services</a></td>
<td class="text"><div><span style="background-color:rgb(255,255,255, 0.0);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="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:36.011%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.823%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.626%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">158,807&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">173,368&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">311,662&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">334,420&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,290&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">25,679&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">24,670&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">38,111&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">169,097&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">199,047&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">336,332&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">372,531&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Schedule of Allowance for Credit Loss Activity</a></td>
<td class="text"><div style="text-align:justify;margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">The following table summarizes the allowance for credit losses activity for the six-month period ended June 28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"/><td style="width:78.441%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.559%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">530&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to the allowance for credit losses</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">600&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Write-offs </span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(186)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">945&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock', window );">Deferred Revenue, by Arrangement, Disclosure</a></td>
<td class="text"><div style="margin-top:3pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020 (in thousands):</span></div><div style="text-align:center;margin-top:8pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.415%;"><tr><td style="width:1.0%;"/><td style="width:78.441%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.559%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,432&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Increases to deferred revenue and customer deposits</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">57,904&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Recognition of revenue</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(25,493)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:6.75pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(105)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">46,738&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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_AccountsReceivableAllowanceForCreditLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueByArrangementDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the type of arrangements and the corresponding amounts that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6935-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueByArrangementDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_RevenueFromExternalCustomersByGeographicAreasTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of revenue from external customers by geographic areas attributed to the entity's country of domicile and to foreign countries from which the entity derives revenue.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph a<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of entity-wide revenues from external customers for each product or service or each group of similar products or services if the information is not provided as part of the reportable operating segment information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470950195960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Summary of Stock Option Activity</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June&#160;28, 2020:</span></div><div style="margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%;"><tr><td style="width:1.0%;"/><td style="width:36.799%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.373%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.323%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.226%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.532%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.083%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term&#160;(in&#160;years)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Aggregate<br/>Intrinsic<br/>Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Outstanding as of December 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12,899&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37.95&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Granted</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">975&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">51.58&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Exercised</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1,822)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">26.47&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:18pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Forfeited or expired</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(421)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50.28&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Outstanding as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">11,631&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">40.45&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.98</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">212,847&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Exercisable as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,331&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">31.59&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5.81</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">144,694&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Options vested or expected to vest as of June 28, 2020 (1)</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,683&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">39.58&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.85</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">204,795&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:3pt double #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr></table></div><div style="padding-left:36pt;text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">&#160;(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><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.327%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.626%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months&#160;Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Risk-free rate</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1.6&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2.7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1.6&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2.7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected dividend yield</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.43&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.39&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.43&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">0.39&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected volatility</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">37&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Expected term (in years)</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.0</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5.2</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">6.0</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5.3</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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.912%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.041%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cost of revenue</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">363&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">329&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">717&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">780&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Research, development, and engineering</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2,401&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,550&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7,767&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,017&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Selling, general, and administrative</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,254&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7,088&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,324&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,451&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">8,018&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,967&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">22,808&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">23,248&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of Nonvested Restricted Stock Units Activity</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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 for the six-month period ended June 28, 2020: </span></div><div style="text-align:center;margin-top:5pt;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:64.520%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:14.812%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.938%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Shares<br/>(in thousands)</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Nonvested as of December 31, 2019</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">150&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">48.63&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Granted</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">432&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">51.53&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Vested</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Forfeited or expired</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(21)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50.54&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Nonvested as of June 28, 2020</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">561&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">50.79&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested restricted stock units.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864001112">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Reconciliation of United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate, or Income Tax Provision</a></td>
<td class="text"><div style="text-align:justify;margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;">A reconciliation of the United States 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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:41.128%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:11.888%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.450%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.888%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.456%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months&#160;Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(21)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">21&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">State income taxes, net of federal benefit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign tax rate differential</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(7)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(5)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(7)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Tax credit</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(1)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</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;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Discrete tax benefit related to stock options</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(191)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(2)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(29)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">141&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">17&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Tax rate adjustment</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">18&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">2&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:top;padding-left:11.25pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Income tax expense</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(51)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">12&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">%</span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862315848">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock', window );">Calculation of Weighted-Average Shares</a></td>
<td class="text"><div style="margin-top:6pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:5pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.912%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.181%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.619%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.530%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.479%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Three-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="9" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Six-months Ended</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:8pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 28, 2020</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">June 30, 2019</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">172,283&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">171,318&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">172,345&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">171,209&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:left;vertical-align:top;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Effect of dilutive equity awards</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,130&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,154&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#ffffff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">4,319&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#ffffff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">172,283&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">175,448&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">175,499&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">175,528&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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><span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470869328728">
<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">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock', window );">Schedule of Restructuring Charges</a></td>
<td class="text">The following table summarizes the restructuring charges (in thousands):<table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:57.883%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:17.767%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.381%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:17.769%;"/><td style="width:1.0%;"/><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total Amount Expected to be Incurred</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Incurred in the Three-months Ended June 28, 2020</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">One-time termination benefits</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">11,387&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,386&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contract termination costs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,995&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,995&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other associated costs</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">1,063&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">417&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="display:none;"/><td colspan="3" style="display:none;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">16,445&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,798&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><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><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock', window );">Schedule of Activity in Restructuring Reserve</a></td>
<td class="text"><div style="text-align:justify;margin-top:9pt;margin-bottom:16pt;"><span style="background-color:rgb(255,255,255, 0.0);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;margin-bottom:6pt;"><table style="border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%;"><tr><td style="width:1.0%;"/><td style="width:37.327%;"/><td style="width:1.0%;"/><td style="width:1.0%;"/><td style="width:13.204%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.384%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:12.181%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.384%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:11.888%;"/><td style="width:1.0%;"/><td style="width:0.1%;"/><td style="width:0.384%;"/><td style="width:0.1%;"/><td style="width:1.0%;"/><td style="width:13.648%;"/><td style="width:1.0%;"/></tr><tr><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">One-time Termination Benefits</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Contract Termination Costs</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Other Associated Costs</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:center;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Total</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of December 31, 2019</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;border-top:1pt solid #000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;border-top:1pt solid #000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Restructuring charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">10,386&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">3,995&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">417&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">14,798&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Cash payments</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4,654)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(26)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);"/></span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(9)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(4,689)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Non-cash restructuring charges</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(3,145)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#8212;&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">(3,145)</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Foreign exchange rate changes</span></td><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">60&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:400;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:#cceeff;text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td colspan="2" style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-left:1pt;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">72&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:#cceeff;text-align:right;vertical-align:bottom;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td></tr><tr><td colspan="3" style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">Balance as of June 28, 2020</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">5,792&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">829&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">415&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</span></td><td colspan="3" style="background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;padding-left:1pt;padding-right:1pt;"/><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:left;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-left:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">$</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:0%;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">7,036&#160;</span></td><td style="padding-top:2px;padding-bottom:2px;background-color:rgb(255,255,255, 0.0);text-align:right;vertical-align:bottom;border-top:1pt solid #000;border-bottom:3pt double #000000;padding-right:1pt;"><span style="font-size:10pt;font-weight:700;font-family:'Arial',sans-serif;color:#000000;background-color:rgb(255,255,255, 0.0);">&#160;</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;"/></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><span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864953208">
<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 (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 28, 2020</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market instruments</a></td>
<td class="nump">$ 50,222<span></span>
</td>
<td class="nump">$ 15,933<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">610,171<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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">236,660<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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">230,692<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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">91,610<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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">27,517<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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">22,054<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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">1,638<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member', window );">Quoted Prices in Active Markets for Identical Assets (Level 1) | Fair Value, Measurements, Recurring</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market instruments</a></td>
<td class="nump">50,222<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2) | Fair Value, Measurements, Recurring</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market instruments</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="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">46<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>Liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">458<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liabilities</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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2) | Fair Value, Measurements, Recurring | Corporate Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">236,660<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2) | Fair Value, Measurements, Recurring | Treasury Bills</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">230,692<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2) | Fair Value, Measurements, Recurring | Asset-Backed Securities</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">91,610<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2) | Fair Value, Measurements, Recurring | Sovereign Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">27,517<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2) | Fair Value, Measurements, Recurring | Agency Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">22,054<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant Other Observable Inputs (Level 2) | Fair Value, Measurements, Recurring | Municipal Bonds</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="top.Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Financial assets at fair value</a></td>
<td class="nump">1,638<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="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Fair Value, Inputs, Level 3 | Fair Value, Measurements, Recurring</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="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>Liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liabilities</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,153<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsFairValueDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=d3e26610-111562<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized arising from contingent consideration in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116859824&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_MoneyMarketFundsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>53
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470870055000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</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="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Business Combination, Contingent Consideration, Liability</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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="top.Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payment of contingent consideration</a></td>
<td class="nump">1,039,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,039,000<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease asset impairment charges</a></td>
<td class="nump">2,534,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,534,000<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="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">19,571,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">19,571,000<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="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit loss on investments</a></td>
<td class="nump">85,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(75,000)<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal', window );">Gross credit losses recorded</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">160,000<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery', window );">Gross recoveries</a></td>
<td class="nump">85,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">85,000<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="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_OtherNonoperatingIncomeExpenseMember', window );">Other Income (Expense)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueAdjustment', window );">Fair value adjustment</a></td>
<td class="nump">114,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="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_RestructuringChargesMember', window );">Restructuring Charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,534,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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_ChiaroTechnologiesLLCMember', window );">Chiaro Technologies LLC [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="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Business Combination, Contingent Consideration, Liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,153,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="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_GViVenturesInc.Member', window );">GVi Ventures, Inc. [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low</a></td>
<td class="nump">2,500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum | GVi Ventures, Inc. [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For contingent consideration arrangements and indemnification assets recognized in connection with a business combination, this element represents an estimate of the low-end of the potential range (undiscounted) of the consideration which may be paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in 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), from recovery.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922900-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), from change in present value of expected cash flows.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82922868-210454<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922897-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesFairValueAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of addition (reduction) to the amount at which a liability could be incurred (settled) in a current transaction between willing parties.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesFairValueAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from impairment of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121593497&amp;loc=SL77918431-209957<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other-than-temporary impairment (OTTI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), recognized in earnings and other comprehensive loss (OCI).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8A<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=SL6284422-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_OtherNonoperatingIncomeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_OtherNonoperatingIncomeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_RestructuringChargesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_RestructuringChargesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_ChiaroTechnologiesLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_ChiaroTechnologiesLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_GViVenturesInc.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_GViVenturesInc.Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470960971528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit loss on investments</a></td>
<td class="nump">$ 85<span></span>
</td>
<td class="nump">$ 0<span></span>
</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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains', window );">Gross realized gains on sale of investments</a></td>
<td class="nump">962<span></span>
</td>
<td class="nump">394<span></span>
</td>
<td class="nump">2,826<span></span>
</td>
<td class="nump">458<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses', window );">Gross realized losses on sale of investments</a></td>
<td class="nump">7<span></span>
</td>
<td class="nump">$ 12<span></span>
</td>
<td class="nump">21<span></span>
</td>
<td class="nump">$ 36<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="top.Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_OtherCurrentAssetsMember', window );">Other Current Assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [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="top.Show.showAR( this, 'defref_us-gaap_InterestReceivable', window );">Accrued interest receivable</a></td>
<td class="nump">$ 1,958<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,958<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,874<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesGrossRealizedGains">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This item represents the gross profit realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesGrossRealizedGains</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This item represents the gross loss realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.8)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other-than-temporary impairment (OTTI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), recognized in earnings and other comprehensive loss (OCI).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8A<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=SL6284422-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_OtherCurrentAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_OtherCurrentAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470870009336">
<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 (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 28, 2020</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="top.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="top.Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="nump">$ 235,799<span></span>
</td>
<td class="nump">$ 155,498<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market instruments</a></td>
<td class="nump">50,222<span></span>
</td>
<td class="nump">15,933<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">286,021<span></span>
</td>
<td class="nump">171,431<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">143,084<span></span>
</td>
<td class="nump">240,470<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermInvestments', window );">Non-current investments, amortized cost of $461,948 and $431,633 in 2020 and 2019, respectively, allowance for expected credit losses of $75 and $0 in 2020 and 2019, respectively</a></td>
<td class="nump">467,087<span></span>
</td>
<td class="nump">433,452<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="top.Show.showAR( this, 'defref_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments', window );">Total</a></td>
<td class="nump">896,192<span></span>
</td>
<td class="nump">845,353<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">34,018<span></span>
</td>
<td class="nump">92,914<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">196,674<span></span>
</td>
<td class="nump">216,334<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">42,248<span></span>
</td>
<td class="nump">65,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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">194,412<span></span>
</td>
<td class="nump">146,474<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">50,311<span></span>
</td>
<td class="nump">66,680<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">41,299<span></span>
</td>
<td class="nump">46,403<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CertificatesOfDepositMember', window );">Certificate of deposit</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,328<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">12,648<span></span>
</td>
<td class="nump">16,005<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">22,054<span></span>
</td>
<td class="nump">5,914<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">1,638<span></span>
</td>
<td class="nump">4,630<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,322<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtMember', window );">Sovereign bonds</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="top.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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019</a></td>
<td class="nump">$ 14,869<span></span>
</td>
<td class="nump">$ 6,294<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cash, cash equivalents, short term and long term investments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 210<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=118262064&amp;loc=SL116631418-115840<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 210<br> -Section 45<br> -Paragraph 21<br> -URI http://asc.fasb.org/extlink&amp;oid=118262064&amp;loc=SL116631419-115840<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.12)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_CertificatesOfDepositMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_CertificatesOfDepositMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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=us-gaap_SovereignDebtMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_SovereignDebtMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866084472">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments - Summary of Available-for-Sale Investments (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 28, 2020 </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="top.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>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">$ 603,822<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">6,747<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</a></td>
<td class="num">(398)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">610,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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">22,054<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds | Long-Term Investments</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="top.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>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">22,035<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">37<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</a></td>
<td class="num">(18)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">22,054<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills</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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">230,692<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills | Short-Term Investments</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="top.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>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">33,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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">538<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">34,018<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills | Long-Term Investments</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="top.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>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">194,330<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">2,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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</a></td>
<td class="num">(1)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">196,674<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">236,660<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds | Short-Term Investments</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="top.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>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">42,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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">221<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</a></td>
<td class="num">(38)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">42,248<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds | Long-Term Investments</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="top.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>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">192,233<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">2,513<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</a></td>
<td class="num">(334)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">194,412<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities</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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">91,610<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities | Short-Term Investments</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="top.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>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">49,899<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">412<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">50,311<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities | Long-Term Investments</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="top.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>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">40,817<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">484<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</a></td>
<td class="num">(2)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">41,299<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">27,517<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds | Short-Term Investments</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="top.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>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">14,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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">82<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">14,869<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds | Long-Term Investments</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="top.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>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">12,533<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</a></td>
<td class="nump">115<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">12,648<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds</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="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">1,638<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds | Short-Term Investments</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="top.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>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized cost</a></td>
<td class="nump">1,643<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross unrealized gains</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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross unrealized losses</a></td>
<td class="num">(5)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">$ 1,638<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=d3e26610-111562<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_InvestmentTypeAxis=cgnx_LongTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentTypeAxis=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_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_InvestmentTypeAxis=us-gaap_ShortTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentTypeAxis=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_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>57
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866144824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments - Gross Unrealized Losses and Fair Values for Available-for-Sale Investments (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair value, less than 12 months</a></td>
<td class="nump">$ 72,657,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 72,657,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized losses, less than 12 months</a></td>
<td class="num">(372,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(372,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair value, 12 months or greater</a></td>
<td class="nump">4,225,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,225,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized losses, 12 months or greater</a></td>
<td class="num">(26,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(26,000)<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Total fair value</a></td>
<td class="nump">76,882,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">76,882,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Total unrealized losses</a></td>
<td class="nump">398,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">398,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal', window );">Gross credit losses recorded</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">160,000<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery', window );">Gross recoveries</a></td>
<td class="nump">85,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">85,000<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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair value, less than 12 months</a></td>
<td class="nump">12,962,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,962,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized losses, less than 12 months</a></td>
<td class="num">(1,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair value, 12 months or greater</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized losses, 12 months or greater</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Total fair value</a></td>
<td class="nump">12,962,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,962,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Total unrealized losses</a></td>
<td class="nump">1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair value, less than 12 months</a></td>
<td class="nump">3,128,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,128,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized losses, less than 12 months</a></td>
<td class="num">(2,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair value, 12 months or greater</a></td>
<td class="nump">2,784,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,784,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized losses, 12 months or greater</a></td>
<td class="num">(16,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(16,000)<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Total fair value</a></td>
<td class="nump">5,912,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,912,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Total unrealized losses</a></td>
<td class="nump">18,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18,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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair value, less than 12 months</a></td>
<td class="nump">49,525,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">49,525,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized losses, less than 12 months</a></td>
<td class="num">(363,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(363,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair value, 12 months or greater</a></td>
<td class="nump">1,181,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,181,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized losses, 12 months or greater</a></td>
<td class="num">(9,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(9,000)<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Total fair value</a></td>
<td class="nump">50,706,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50,706,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Total unrealized losses</a></td>
<td class="nump">372,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">372,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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair value, less than 12 months</a></td>
<td class="nump">5,749,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,749,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized losses, less than 12 months</a></td>
<td class="num">(1,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair value, 12 months or greater</a></td>
<td class="nump">260,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">260,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized losses, 12 months or greater</a></td>
<td class="num">(1,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,000)<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Total fair value</a></td>
<td class="nump">6,009,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,009,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Total unrealized losses</a></td>
<td class="nump">2,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair value, less than 12 months</a></td>
<td class="nump">1,293,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,293,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized losses, less than 12 months</a></td>
<td class="num">(5,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair value, 12 months or greater</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized losses, 12 months or greater</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Total fair value</a></td>
<td class="nump">1,293,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,293,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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Total unrealized losses</a></td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in 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), from recovery.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922900-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), from change in present value of expected cash flows.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82922868-210454<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922897-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922890-210455<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27337-111563<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121590138&amp;loc=SL82922954-210456<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27337-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922890-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27337-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922890-210455<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121590138&amp;loc=SL82922954-210456<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922890-210455<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27337-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27290-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922888-210455<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121590138&amp;loc=SL82922954-210456<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27290-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922888-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>58
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865110424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments Cash, Cash Equivalents, and Investments - Schedule of Allowance for Credit Loss Activity (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward', window );"><strong>Debt Securities, Available-for-sale, Allowance for Credit Loss [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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss', window );">Balance as of December 31, 2019</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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal', window );">Increases to the allowance for credit losses</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">160,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery', window );">Decreases to the allowance for credit losses</a></td>
<td class="num">(85,000)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(85,000)<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="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff', window );">Write-offs</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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss', window );">Balance as of June 28, 2020</a></td>
<td class="nump">75,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">75,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale', window );">Reclassification of credit loss on investments</a></td>
<td class="nump">$ 85,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (75,000)<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_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922900-210455<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922900-210455<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in 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), from recovery.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922900-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of writeoff 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922900-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), from change in present value of expected cash flows.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82922868-210454<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121582814&amp;loc=SL82922897-210455<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other-than-temporary impairment (OTTI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), recognized in earnings and other comprehensive loss (OCI).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8A<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=SL6284422-111562<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865003448">
<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 (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 28, 2020 </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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">1 year or less</a></td>
<td class="nump">$ 143,084<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 years</a></td>
<td class="nump">243,567<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 years</a></td>
<td class="nump">208,888<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 years</a></td>
<td class="nump">10,391<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 years</a></td>
<td class="nump">4,241<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">610,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="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">1 year or less</a></td>
<td class="nump">42,248<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 years</a></td>
<td class="nump">81,987<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 years</a></td>
<td class="nump">102,034<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 years</a></td>
<td class="nump">10,391<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 years</a></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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">236,660<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">1 year or less</a></td>
<td class="nump">34,018<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 years</a></td>
<td class="nump">138,612<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 years</a></td>
<td class="nump">58,062<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 years</a></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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">230,692<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">1 year or less</a></td>
<td class="nump">50,311<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 years</a></td>
<td class="nump">13,750<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 years</a></td>
<td class="nump">23,308<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 years</a></td>
<td class="nump">4,241<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">91,610<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">1 year or less</a></td>
<td class="nump">14,869<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 years</a></td>
<td class="nump">9,218<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 years</a></td>
<td class="nump">3,430<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 years</a></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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">27,517<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">1 year or less</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 years</a></td>
<td class="nump">22,054<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 years</a></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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">22,054<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds</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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">1 year or less</a></td>
<td class="nump">1,638<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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 years</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="top.Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 years</a></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="top.Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair value</a></td>
<td class="nump">$ 1,638<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 320<br> -Section 50<br> -Paragraph 3A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120252992&amp;loc=SL120269850-112803<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27198-111563<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121558606&amp;loc=SL82898722-210454<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121553693&amp;loc=d3e26610-111562<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -URI http://asc.fasb.org/extlink&amp;oid=121645371&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>60
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866478840">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Inventories - Schedule of Inventories (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 28, 2020</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="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory 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="top.Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 20,736<span></span>
</td>
<td class="nump">$ 27,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="top.Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work-in-process</a></td>
<td class="nump">4,111<span></span>
</td>
<td class="nump">5,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="top.Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">28,106<span></span>
</td>
<td class="nump">27,473<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">$ 52,953<span></span>
</td>
<td class="nump">$ 60,261<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864143896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_ExcessAndObsoleteInventoryCharges', window );">Excess and obsolete inventory charges</a></td>
<td class="nump">$ 7,718<span></span>
</td>
<td class="nump">$ 8,783<span></span>
</td>
<td class="nump">$ 1,713<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Excess and Obsolete Inventory Charges</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866036648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases - Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</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="top.Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability</a></td>
<td class="nump">$ 28,836,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 28,836,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,973,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease, right-of-use asset</a></td>
<td class="nump">25,819,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,819,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">17,522,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease, liability, current</a></td>
<td class="nump">7,628,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,628,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,647,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease, liability, noncurrent</a></td>
<td class="nump">21,208,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21,208,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,326,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating lease, cost</a></td>
<td class="nump">2,147,000<span></span>
</td>
<td class="nump">$ 1,742,000<span></span>
</td>
<td class="nump">4,053,000<span></span>
</td>
<td class="nump">$ 3,227,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating lease, payments</a></td>
<td class="nump">2,091,000<span></span>
</td>
<td class="nump">1,669,000<span></span>
</td>
<td class="nump">3,954,000<span></span>
</td>
<td class="nump">3,070,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="top.Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Lease, cost</a></td>
<td class="nump">$ 23,000<span></span>
</td>
<td class="nump">$ 64,000<span></span>
</td>
<td class="nump">$ 62,000<span></span>
</td>
<td class="nump">$ 233,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate</a></td>
<td class="nump">4.10%<span></span>
</td>
<td class="nump">4.80%<span></span>
</td>
<td class="nump">4.10%<span></span>
</td>
<td class="nump">4.80%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term</a></td>
<td class="text">5 years 3 months 18 days<span></span>
</td>
<td class="text">3 years 7 months 6 days<span></span>
</td>
<td class="text">5 years 3 months 18 days<span></span>
</td>
<td class="text">3 years 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease asset impairment charges</a></td>
<td class="nump">$ 2,534,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,534,000<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="top.Show.showAR( this, 'defref_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset', window );">Carrying value operating lease right-of-use assets impaired</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLeaseIncome', window );">Rental income</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 81,000<span></span>
</td>
<td class="nump">$ 77,000<span></span>
</td>
<td class="nump">$ 158,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_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Right-Of-Use Asset, Carrying Value Of Impaired Asset</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset</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_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=121568110&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=121568110&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from impairment of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121593497&amp;loc=SL77918431-209957<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLeaseIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease income from lease payments and variable lease payments paid and payable to lessor. Includes, but is not limited to, variable lease payments not included in measurement of lease receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121576215&amp;loc=SL77919372-209981<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121561866&amp;loc=SL77919311-209978<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6A<br> -URI http://asc.fasb.org/extlink&amp;oid=121640914&amp;loc=SL77927221-108306<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLeaseIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=121568110&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=121568110&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864833464">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Future Minimum Lease Payment Obligations Under Operating Leases (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 28, 2020 </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="top.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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">Remainder of fiscal 2019</a></td>
<td class="nump">$ 4,335<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2021</a></td>
<td class="nump">8,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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2022</a></td>
<td class="nump">6,169<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2023</a></td>
<td class="nump">4,973<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2024</a></td>
<td class="nump">2,391<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="top.Show.showAR( this, 'defref_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix', window );">2025</a></td>
<td class="nump">1,322<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="top.Show.showAR( this, 'defref_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix', window );">Thereafter</a></td>
<td class="nump">4,462<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total</a></td>
<td class="nump">$ 31,992<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Liability, Payments, Due Year Six</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LesseeOperatingLeaseLiabilityPaymentsDueYearSix</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_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Liability, Payments, Due after Year Six</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix</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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470961023944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 28, 2020 </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="top.Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [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="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance as of December 31, 2019</a></td>
<td class="nump">$ 243,445<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss', window );">Foreign exchange rate changes</a></td>
<td class="num">(1,009)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Balance as of December 31, 2019</a></td>
<td class="nump">$ 242,436<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470860742360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>May 26, 2020</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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">$ 73,675,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 73,675,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 93,474,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">56,338,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">56,338,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">53,984,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">17,337,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">17,337,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">39,490,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="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">19,571,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">19,571,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">17,337,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">17,337,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">39,490,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DistributionRightsMember', window );">Distribution networks</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">38,060,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,060,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,060,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">38,060,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,060,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,060,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">21,917,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21,917,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,987,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">11,035,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,035,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,160,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">10,882,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,882,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,827,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">10,882,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,882,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,827,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Completed technologies | Sualab [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">10,070,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">10,578,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,578,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,407,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">6,795,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,795,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,402,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">3,783,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,783,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,005,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">3,783,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,783,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,005,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer relationships | Sualab [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">3,382,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer relationships | EnShape GmbH [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 228,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="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">219,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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets acquired</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 447,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember', window );">In-process technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,200,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,200,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,200,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember', window );">In-process technologies | Sualab [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">5,900,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OtherIntangibleAssetsMember', window );">Non-compete agreements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">710,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">710,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">710,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">409,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">409,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">350,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">301,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">301,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">360,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">301,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">301,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">360,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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">110,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">110,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">110,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="nump">39,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">39,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">71,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">71,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">98,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">71,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">71,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 98,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember', window );">Indefinite-lived intangible asset excluding in-process technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">15,037,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,037,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">Remainder of fiscal 2020</a></td>
<td class="nump">1,686,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,686,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2021</a></td>
<td class="nump">3,272,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,272,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2022</a></td>
<td class="nump">2,902,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,902,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2023</a></td>
<td class="nump">2,211,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,211,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2024</a></td>
<td class="nump">1,697,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,697,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2025</a></td>
<td class="nump">1,374,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,374,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">1,895,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,895,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="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">$ 15,037,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15,037,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_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121647850&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_BusinessAcquisitionAxis=cgnx_SualabMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_SualabMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_BusinessAcquisitionAxis=cgnx_EnShapeGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_EnShapeGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_InProcessResearchAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_InProcessResearchAndDevelopmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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=cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470869452808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Warranty Obligations - Changes in Warranty Obligations (Detail)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 28, 2020 </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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Beginning balance</a></td>
<td class="nump">$ 4,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="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualWarrantiesIssued', window );">Provisions for warranties issued during the period</a></td>
<td class="nump">1,493<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualPayments', window );">Fulfillment of warranty obligations</a></td>
<td class="num">(927)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Ending balance</a></td>
<td class="nump">$ 5,279<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph ((c)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph ((c)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=68068213&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864052696">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 28, 2020</div></th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument</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="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems', window );"><strong>Derivative Instruments and Hedging Activities Disclosures [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="top.Show.showAR( this, 'defref_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1', window );">Remaining maturity of foreign currency derivatives (up to)</a></td>
<td class="text">45 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>68
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470861184520">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Outstanding Forward Contracts Table (Details) - Not Designated as Hedging Instrument<br> &#8364; in Thousands, &#8361; in Thousands, &#165; in Thousands, $ in Thousands, $ in Thousands, $ in Thousands, $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>KRW (&#8361;)</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>TWD ($)</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>KRW (&#8361;)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>TWD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>SGD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Euro Member Countries, Euro</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 56,137<span></span>
</td>
<td class="nump">&#8364; 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="nump">$ 20,249<span></span>
</td>
<td class="nump">&#8364; 18,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="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Japanese Yen</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,587<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="text">&#160;<span></span>
</td>
<td class="nump">5,291<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 575,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="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Mexico, Pesos</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,051<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">184,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="nump">4,223<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">United Kingdom, Pounds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,406<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,940<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,569<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Hungary, Forint</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,443<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 1,085,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="nump">2,962<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 870,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="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Korean Won</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="nump">&#8361; 138,690,000<span></span>
</td>
<td class="nump">115,604<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#8361; 161,951,500<span></span>
</td>
<td class="nump">139,688<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Taiwanese Dollar</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,455<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 42,765<span></span>
</td>
<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,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 37,450<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="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Canada, Dollars</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">827<span></span>
</td>
<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,130<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,300<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="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Singapore, Dollars</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Outstanding forward contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 784<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,090<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 628<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 845<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5579245-113959<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1B<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5580258-113959<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5579245-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KRW">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_KRW</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_TWD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TWD</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_SGD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>69
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470869578648">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Schedule of Derivative Instruments in Statement of Financial Position, Fair Value (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 28, 2020</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="top.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="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Derivative asset</a></td>
<td class="nump">$ 46<span></span>
</td>
<td class="nump">$ 857<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Derivative liability</a></td>
<td class="nump">458<span></span>
</td>
<td class="nump">23<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument | Prepaid Expenses and Other Current Assets</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="top.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="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Derivative asset</a></td>
<td class="nump">46<span></span>
</td>
<td class="nump">857<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument | Accrued Expenses</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="top.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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Derivative liability</a></td>
<td class="nump">$ 458<span></span>
</td>
<td class="nump">$ 23<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121572278&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121572278&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_us-gaap_BalanceSheetLocationAxis=us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_PrepaidExpensesAndOtherCurrentAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=cgnx_AccruedExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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=cgnx_AccruedExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470869441416">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Offsetting Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 28, 2020</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="top.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="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeAsset', window );">Gross amounts of recognized assets</a></td>
<td class="nump">$ 46<span></span>
</td>
<td class="nump">$ 857<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset', window );">Gross amounts 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="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">46<span></span>
</td>
<td class="nump">857<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeLiability', window );">Gross amounts of recognized liabilities</a></td>
<td class="nump">458<span></span>
</td>
<td class="nump">23<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset', window );">Gross amounts 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="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">$ 458<span></span>
</td>
<td class="nump">$ 23<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=117331979&amp;loc=d3e41228-113958<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121572278&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226000-175313<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 860<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121570589&amp;loc=SL51823488-111719<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5624163-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 860<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121570589&amp;loc=SL51823488-111719<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5624163-113959<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226000-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121572278&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=117331979&amp;loc=d3e41228-113958<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866007832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments - Derivative Instruments, Gain (Loss) (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument | Foreign Currency Gain (Loss)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Gains (losses) recognized in current operations</a></td>
<td class="nump">$ 60<span></span>
</td>
<td class="num">$ (439)<span></span>
</td>
<td class="num">$ (8,180)<span></span>
</td>
<td class="nump">$ 66<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_us-gaap_IncomeStatementLocationAxis=us-gaap_ForeignCurrencyGainLossMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_ForeignCurrencyGainLossMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866533640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Revenue Disaggregated by Geography (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 169,097<span></span>
</td>
<td class="nump">$ 199,047<span></span>
</td>
<td class="nump">$ 336,332<span></span>
</td>
<td class="nump">$ 372,531<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">68,966<span></span>
</td>
<td class="nump">77,408<span></span>
</td>
<td class="nump">129,214<span></span>
</td>
<td class="nump">142,178<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_EuropeMember', window );">Europe</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">35,987<span></span>
</td>
<td class="nump">59,620<span></span>
</td>
<td class="nump">84,569<span></span>
</td>
<td class="nump">119,158<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CN', window );">Greater China</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">31,898<span></span>
</td>
<td class="nump">35,816<span></span>
</td>
<td class="nump">58,301<span></span>
</td>
<td class="nump">58,632<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=cgnx_AsiaExcludingChinaMember', window );">Other Asia</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 32,246<span></span>
</td>
<td class="nump">$ 26,203<span></span>
</td>
<td class="nump">$ 64,248<span></span>
</td>
<td class="nump">$ 52,563<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=country_CN">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_CN</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_AsiaExcludingChinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AsiaExcludingChinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866549240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Revenue Disaggregated by Products and Services (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems', window );"><strong>Revenue from External Customer [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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 169,097<span></span>
</td>
<td class="nump">$ 199,047<span></span>
</td>
<td class="nump">$ 336,332<span></span>
</td>
<td class="nump">$ 372,531<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cgnx_StandardProductsandServicesMember', 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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems', window );"><strong>Revenue from External Customer [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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">158,807<span></span>
</td>
<td class="nump">173,368<span></span>
</td>
<td class="nump">311,662<span></span>
</td>
<td class="nump">334,420<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cgnx_ApplicationSpecificCustomerSolutionsMember', 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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems', window );"><strong>Revenue from External Customer [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="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 10,290<span></span>
</td>
<td class="nump">$ 25,679<span></span>
</td>
<td class="nump">$ 24,670<span></span>
</td>
<td class="nump">$ 38,111<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StandardProductsandServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StandardProductsandServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_ApplicationSpecificCustomerSolutionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ApplicationSpecificCustomerSolutionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865039624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Additional Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostGross', window );">Costs to fulfill contract</a></td>
<td class="nump">$ 10,888<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,888<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,963<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Credit losses on accounts receivable</a></td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 90<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="nump">$ 90<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_CapitalizedContractCostGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 40<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=68051541&amp;loc=SL49131252-203054<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>75
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470960566328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Schedule of Allowance for Credit Loss (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance as of December 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 530<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Increases to the allowance for credit losses</a></td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 90<span></span>
</td>
<td class="nump">600<span></span>
</td>
<td class="nump">$ 90<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Write-offs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(186)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Balance as of June 28, 2020</a></td>
<td class="nump">$ 945<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 945<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_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121611835&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121599878&amp;loc=SL82895884-210446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>76
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865998184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Deferred Revenue Activity (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 28, 2020 </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="top.Show.showAR( this, 'defref_us-gaap_MovementInDeferredRevenueRollForward', window );"><strong>Movement in Deferred Revenue [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="top.Show.showAR( this, 'defref_us-gaap_DeferredRevenue', window );">Balance as of December 31, 2019</a></td>
<td class="nump">$ 14,432<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredRevenueAdditions', window );">Increases to deferred revenue and customer deposits</a></td>
<td class="nump">57,904<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredRevenueRevenueRecognized1', window );">Recognition of revenue</a></td>
<td class="num">(25,493)<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="top.Show.showAR( this, 'defref_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="num">(105)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredRevenue', window );">Balance as of June 28, 2020</a></td>
<td class="nump">$ 46,738<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Deferred Revenue, Foreign Currency Exchange Adjustment</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DeferredRevenueForeignCurrencyExchangeAdjustment</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_DeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueAdditions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred revenue recognized for transactions arising during the current reporting period. Deferred revenue is a liability as of the balance sheet date related to a revenue producing activity for which revenue has not yet been recognized. Generally, an Entity records deferred revenue when it receives consideration from a customer before achieving certain criteria that must be met for revenue to be recognized in conformity with GAAP.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueAdditions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueRevenueRecognized1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously reported as deferred or unearned revenue.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueRevenueRecognized1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MovementInDeferredRevenueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MovementInDeferredRevenueRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>77
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866040600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense (Details)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>USD ($) </div>
<div>group </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>USD ($) </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>USD ($) </div>
<div>group </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant-date fair values, in dollars per share | $ / shares</a></td>
<td class="nump">$ 19.13<span></span>
</td>
<td class="nump">$ 18.68<span></span>
</td>
<td class="nump">$ 18.52<span></span>
</td>
<td class="nump">$ 18.59<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="top.Show.showAR( this, 'defref_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue', window );">Total intrinsic value</a></td>
<td class="nump">$ 39,359,000<span></span>
</td>
<td class="nump">$ 14,220,000<span></span>
</td>
<td class="nump">$ 53,814,000<span></span>
</td>
<td class="nump">$ 36,799,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="top.Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue', window );">Total fair values of stock options vest</a></td>
<td class="nump">$ 1,287,000<span></span>
</td>
<td class="nump">887,000<span></span>
</td>
<td class="nump">$ 37,951,000<span></span>
</td>
<td class="nump">$ 30,859,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (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="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="top.Show.showAR( this, 'defref_cgnx_NumberOfGroupsWithinEmployeePopulation', window );">Groups within the employee population | group</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<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="top.Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement', window );">Estimated annual forfeiture rate for unvested options for senior management</a></td>
<td class="nump">7.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement', window );">Estimated annual forfeiture rate for unvested options for all other employees</a></td>
<td class="nump">12.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.00%<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="top.Show.showAR( this, 'defref_cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates', window );">Increase (decrease) to compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,787,000<span></span>
</td>
<td class="nump">$ 499,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="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Unrecognized compensation expense</a></td>
<td class="nump">$ 65,128,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 65,128,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="top.Show.showAR( this, 'defref_cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition', window );">Weighted average period to be recognized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">8,018,000<span></span>
</td>
<td class="nump">10,967,000<span></span>
</td>
<td class="nump">$ 22,808,000<span></span>
</td>
<td class="nump">23,248,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments', window );">Credits related to grants cancelled</a></td>
<td class="nump">1,401,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,401,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="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Tax benefit from compensation expense</a></td>
<td class="nump">1,277,000<span></span>
</td>
<td class="nump">$ 1,813,000<span></span>
</td>
<td class="nump">3,841,000<span></span>
</td>
<td class="nump">$ 4,035,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="top.Show.showAR( this, 'defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Recognized period costs capitalized</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Employee Stock Option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Shares available for grant under stock option plans | shares</a></td>
<td class="nump">16,335,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">16,335,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="top.Show.showAR( this, 'defref_cgnx_ExpirationPeriodOfStockOptionPlan', window );">Expiration period from grant day</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 56.97<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51.53<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares) | shares</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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">432,000<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="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum | General Stock Option 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum | General Stock Option 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Employee Service Share-based Compensation, Nonvested Awards, Compensation Not yet Recognized, Period for Recognition</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition</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_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Estimated forfeiture rate for unvested options for senior management.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ExpirationPeriodOfStockOptionPlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Expiration period of stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of groups within employee population.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Shares based compensation arrangement by shares based payment award options exercisable intrinsic value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from severance costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_PlanNameAxis=cgnx_GeneralStockOptionPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_GeneralStockOptionPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>78
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865495640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Summary of Stock Option Activity (Details)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 28, 2020 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Shares (in&#160;thousands)</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, shares | shares</a></td>
<td class="nump">12,899<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod', window );">Granted, shares | shares</a></td>
<td class="nump">975<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares | shares</a></td>
<td class="num">(1,822)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Forfeited or expired, shares | shares</a></td>
<td class="num">(421)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, shares | shares</a></td>
<td class="nump">11,631<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable as of reporting date, shares | shares</a></td>
<td class="nump">5,331<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Options vested or expected to vest as of reporting date, shares | shares</a></td>
<td class="nump">10,683<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted- Average Exercise Price</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, shares | $ / shares</a></td>
<td class="nump">$ 37.95<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, in dollars per share | $ / shares</a></td>
<td class="nump">51.58<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, in dollars per share | $ / shares</a></td>
<td class="nump">26.47<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice', window );">Forfeited or expired, in dollars per share | $ / shares</a></td>
<td class="nump">50.28<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, shares | $ / shares</a></td>
<td class="nump">40.45<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable as of reporting date, Weighted-Average Exercise Price, in dollars per share | $ / shares</a></td>
<td class="nump">31.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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Weighted- Average Remaining Contractual Term&#160;(in&#160;years) | $ / shares</a></td>
<td class="nump">$ 39.58<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Weighted- Average Remaining Contractual Term&#160;(in&#160;years)</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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, in years</a></td>
<td class="text">6 years 11 months 23 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, in years</a></td>
<td class="text">5 years 9 months 21 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Options vested or expected to vest, in years</a></td>
<td class="text">6 years 10 months 6 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract', window );"><strong>Aggregate Intrinsic Value (in&#160;thousands)</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, in dollars | $</a></td>
<td class="nump">$ 212,847<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="top.Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue', window );">Exercisable, in dollars | $</a></td>
<td class="nump">144,694<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Options vested or expected to vest, in dollars | $</a></td>
<td class="nump">$ 204,795<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1 [Abstract]</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract</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_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num: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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)-(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)-(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num: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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num: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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>79
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470959540440">
<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 (Details)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate</a></td>
<td class="nump">1.60%<span></span>
</td>
<td class="nump">2.70%<span></span>
</td>
<td class="nump">1.60%<span></span>
</td>
<td class="nump">2.70%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.43%<span></span>
</td>
<td class="nump">0.39%<span></span>
</td>
<td class="nump">0.43%<span></span>
</td>
<td class="nump">0.39%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">37.00%<span></span>
</td>
<td class="nump">37.00%<span></span>
</td>
<td class="nump">37.00%<span></span>
</td>
<td class="nump">37.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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (in years)</a></td>
<td class="text">6 years<span></span>
</td>
<td class="text">5 years 2 months 12 days<span></span>
</td>
<td class="text">6 years<span></span>
</td>
<td class="text">5 years 3 months 18 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865993784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense Stock-Based Compensation Expense - Schedule of Restricted Stock Units (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Shares (in thousands)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Shares (in thousands)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested as of December 31, 2019 (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">150,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">432,000<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited or expired (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(21,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested as of March 29, 2020 (in shares)</a></td>
<td class="nump">561,000<span></span>
</td>
<td class="nump">561,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted-Average Grant Date Fair Value</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested as of December 31, 2019 (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 48.63<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="nump">$ 56.97<span></span>
</td>
<td class="nump">51.53<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited or expired (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.54<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested as of March 29, 2020 (in dollars per share)</a></td>
<td class="nump">$ 50.79<span></span>
</td>
<td class="nump">$ 50.79<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num: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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470950215960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 8,018<span></span>
</td>
<td class="nump">$ 10,967<span></span>
</td>
<td class="nump">$ 22,808<span></span>
</td>
<td class="nump">$ 23,248<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfGoodsTotalMember', window );">Cost of Revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">363<span></span>
</td>
<td class="nump">329<span></span>
</td>
<td class="nump">717<span></span>
</td>
<td class="nump">780<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">2,401<span></span>
</td>
<td class="nump">3,550<span></span>
</td>
<td class="nump">7,767<span></span>
</td>
<td class="nump">8,017<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=cgnx_SellingGeneralAndAdministrativeMember', window );">Selling, General, and Administrative</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 5,254<span></span>
</td>
<td class="nump">$ 7,088<span></span>
</td>
<td class="nump">$ 14,324<span></span>
</td>
<td class="nump">$ 14,451<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfGoodsTotalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_CostOfGoodsTotalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>82
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470865585464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock Repurchase Program (Details) - USD ($)<br> shares in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Mar. 29, 2020</div></th>
<th class="th"><div>Mar. 12, 2020</div></th>
<th class="th"><div>Oct. 29, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EquityClassOfTreasuryStockLineItems', window );"><strong>Equity, Class of Treasury Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1', window );">Remaining authorized repurchase amount</a></td>
<td class="nump">$ 78,652,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 78,652,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="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Stock repurchased during period, value</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 61,690,000<span></span>
</td>
<td class="nump">$ 51,036,000<span></span>
</td>
<td class="nump">$ 61,690,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="top.Show.showAR( this, 'defref_us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramOctober2018Member', window );">Repurchase Program October 2018</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EquityClassOfTreasuryStockLineItems', window );"><strong>Equity, Class of Treasury Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1', window );">Authorized common stock to be repurchased</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,000,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="top.Show.showAR( this, 'defref_cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased', window );">Share repurchased (in shares)</a></td>
<td class="nump">2,816<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,816<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,215<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="top.Show.showAR( this, 'defref_cgnx_StockRepurchaseProgramValue', window );">Shares repurchased, value</a></td>
<td class="nump">$ 121,348,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 121,348,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51,036,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="top.Show.showAR( this, 'defref_us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2020Member', window );">Repurchase Program March 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EquityClassOfTreasuryStockLineItems', window );"><strong>Equity, Class of Treasury Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1', window );">Authorized common stock to be repurchased</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,000,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_StockRepurchaseProgramAggregateNumberofSharesRepurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Stock Repurchase Program, Aggregate Number of Shares Repurchased</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_StockRepurchaseProgramAggregateNumberofSharesRepurchased</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>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_StockRepurchaseProgramValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Stock Repurchase Program, Value</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_StockRepurchaseProgramValue</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_EquityClassOfTreasuryStockLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityClassOfTreasuryStockLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of stock repurchase plan authorized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount remaining of a stock repurchase plan authorized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864222776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation of 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="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</a></td>
<td class="num">(21.00%)<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes', window );">State income taxes, net of federal benefit</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">1.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Foreign tax rate differential</a></td>
<td class="nump">5.00%<span></span>
</td>
<td class="num">(7.00%)<span></span>
</td>
<td class="num">(5.00%)<span></span>
</td>
<td class="num">(7.00%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits', window );">Tax credit</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="num">(1.00%)<span></span>
</td>
<td class="num">(2.00%)<span></span>
</td>
<td class="num">(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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax benefit related to stock options</a></td>
<td class="num">(191.00%)<span></span>
</td>
<td class="num">(2.00%)<span></span>
</td>
<td class="num">(29.00%)<span></span>
</td>
<td class="num">(4.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate', window );">Discrete tax expense related to tax return filings</a></td>
<td class="num">(141.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(17.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="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent', window );">Tax rate adjustment</a></td>
<td class="nump">18.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="num">(4.00%)<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">2.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Income tax expense</a></td>
<td class="num">(51.00%)<span></span>
</td>
<td class="nump">14.00%<span></span>
</td>
<td class="nump">7.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_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Tax Rate Adjustments, Percent</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 income tax rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120384911&amp;loc=d3e23163-113944<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>84
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864638856">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxContingencyLineItems', window );"><strong>Income Tax Contingency [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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</a></td>
<td class="num">(21.00%)<span></span>
</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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Decrease in effective tax rate</a></td>
<td class="num">(5.00%)<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
<td class="nump">7.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Decrease in effective tax rate for difference between deduction for tax purposes and compensation cost recognized from stock option exercises</a></td>
<td class="nump">191.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">29.00%<span></span>
</td>
<td class="nump">4.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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate', window );">Discrete tax expense related to tax return filings (as a percent)</a></td>
<td class="nump">141.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">17.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent', window );">Tax rate adjustment (as a percent)</a></td>
<td class="nump">18.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear', window );">Increase in reserves for income taxes, net of deferred tax benefit</a></td>
<td class="nump">$ 710<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 710<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="top.Show.showAR( this, 'defref_cgnx_IncreaseDecreaseInterestAndPenalties', window );">Interest and penalties included in reserve</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">283<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="top.Show.showAR( this, 'defref_cgnx_LiabilityForUncertainTaxPositions', window );">Liability for uncertain tax positions</a></td>
<td class="nump">13,330<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,330<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes classified as a noncurrent iability</a></td>
<td class="nump">12,302<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,302<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,563<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="top.Show.showAR( this, 'defref_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets', window );">Reserve for income taxes classified an noncurrent deferred tax assets</a></td>
<td class="nump">1,028<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,028<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties, gross</a></td>
<td class="nump">$ 1,301<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,301<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="top.Show.showAR( this, 'defref_cgnx_TaxyearsopentoexaminationbyInternalRevenueService', window );">Tax years open to examination by Internal Revenue Service</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2016 through 2019<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="top.Show.showAR( this, 'defref_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities', window );">Tax years open to examination by various taxing authorities for other entities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2015 through 2019<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="top.Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent', window );">Effective tax rate excluding discrete items (as a percent)</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">17.00%<span></span>
</td>
<td class="nump">19.00%<span></span>
</td>
<td class="nump">16.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority | Revenue Commissioners, Ireland</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxContingencyLineItems', window );"><strong>Income Tax Contingency [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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.50%<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority | State Administration of Taxation, China</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxContingencyLineItems', window );"><strong>Income Tax Contingency [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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxContingencyLineItems', window );"><strong>Income Tax Contingency [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="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense (benefit) at U.S. federal statutory corporate tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Excluding Discrete Items, Percent</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Tax Rate Adjustments, Percent</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent</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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The tax year(s) being audited in connection with the income tax examination for other entities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncomeTaxExaminationYearsUnderExaminationOtherEntities</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_cgnx_IncreaseDecreaseInterestAndPenalties">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Increase decrease interest and penalties.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncreaseDecreaseInterestAndPenalties</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_LiabilityForUncertainTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Liability for uncertain tax positions, total.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LiabilityForUncertainTaxPositions</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_TaxyearsopentoexaminationbyInternalRevenueService">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tax years open to examination by Internal Revenue Service</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_TaxyearsopentoexaminationbyInternalRevenueService</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_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets as a result of net operating loss carryforward, a similar tax loss, or a tax credit carryforward.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets</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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 income tax rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120384911&amp;loc=d3e23163-113944<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxContingencyLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxContingencyLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount the liability recorded for the income tax examination increased or decreased in the current year/accounting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>85
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470869223912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted-Average Shares (Details) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment', window );">Effect of dilutive equity awards</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,130,000<span></span>
</td>
<td class="nump">3,154,000<span></span>
</td>
<td class="nump">4,319,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="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember', window );">Employee Stock Option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive securities excluded from computation of earnings per share (shares)</a></td>
<td class="nump">5,801,000<span></span>
</td>
<td class="nump">6,113,000<span></span>
</td>
<td class="nump">6,328,000<span></span>
</td>
<td class="nump">5,503,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="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive securities excluded from computation of earnings per share (shares)</a></td>
<td class="nump">27,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_WeightedAverageNumberDilutedSharesOutstandingAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470863810408">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted-Average Shares - Calculation of Weighted-Average Shares (Details) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted-average common shares outstanding</a></td>
<td class="nump">172,283,000<span></span>
</td>
<td class="nump">171,318,000<span></span>
</td>
<td class="nump">172,345,000<span></span>
</td>
<td class="nump">171,209,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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment', window );">Effect of dilutive equity awards</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,130,000<span></span>
</td>
<td class="nump">3,154,000<span></span>
</td>
<td class="nump">4,319,000<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted-average common and common-equivalent shares outstanding</a></td>
<td class="nump">172,283,000<span></span>
</td>
<td class="nump">175,448,000<span></span>
</td>
<td class="nump">175,499,000<span></span>
</td>
<td class="nump">175,528,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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma', window );">Weighted Average Number Basic Shares Outstanding Adjustment, Pro Forma</a></td>
<td class="nump">3,120,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_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Adjustment to the weighted average number of basic shares outstanding to convert this to a pro forma presentation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma</td>
</tr>
<tr>
<td style="padding-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_WeightedAverageNumberDilutedSharesOutstandingAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>87
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470862281224">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Restructuring Charges - Narrative (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>May 26, 2020 </div>
<div>USD ($) </div>
<div>Employees</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent', window );">Workforce reduction (as a percent)</a></td>
<td class="nump">8.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="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated', window );">Expected number of positions eliminated | Employees</a></td>
<td class="nump">181<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostExpectedCost1', window );">Total Amount Expected to be Incurred | $</a></td>
<td class="nump">$ 16,445<span></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_RestructuringAndRelatedCostExpectedCost1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount expected to be recognized in earnings for the specified restructuring cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<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)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostExpectedCost1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The expected number of positions to be eliminated as a result of restructuring activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated</td>
</tr>
<tr>
<td style="padding-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_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the total number of positions eliminated as of the balance sheet date since inception of the restructuring plan(s).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470866130456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Summary (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</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="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostExpectedCost1', window );">Total Amount Expected to be Incurred</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 16,445<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Incurred in the Three-months Ended June 28, 2020</a></td>
<td class="nump">$ 14,798<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 14,798<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time termination benefits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostExpectedCost1', window );">Total Amount Expected to be Incurred</a></td>
<td class="text">&#160;<span></span>
</td>
<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,387<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Incurred in the Three-months Ended June 28, 2020</a></td>
<td class="nump">10,386<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,386<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember', window );">Contract termination costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostExpectedCost1', window );">Total Amount Expected to be Incurred</a></td>
<td class="text">&#160;<span></span>
</td>
<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,995<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Incurred in the Three-months Ended June 28, 2020</a></td>
<td class="nump">3,995<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,995<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember', window );">Other associated costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostExpectedCost1', window );">Total Amount Expected to be Incurred</a></td>
<td class="text">&#160;<span></span>
</td>
<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,063<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Incurred in the Three-months Ended June 28, 2020</a></td>
<td class="nump">$ 417<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 417<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_RestructuringAndRelatedCostExpectedCost1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount expected to be recognized in earnings for the specified restructuring cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<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)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostExpectedCost1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_OtherRestructuringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470860659400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Activity in Restructuring Reserve (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at beginning of period</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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">$ 14,798<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">14,798<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="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,689)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveSettledWithoutCash2', window );">Non-cash restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,145)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">72<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at end of period</a></td>
<td class="nump">7,036<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,036<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time Termination Benefits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at beginning of period</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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">10,386<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,386<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,654)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveSettledWithoutCash2', window );">Non-cash restructuring charges</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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at end of period</a></td>
<td class="nump">5,792<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,792<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember', window );">Contract Termination Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at beginning of period</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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">3,995<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,995<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(26)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveSettledWithoutCash2', window );">Non-cash restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,145)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at end of period</a></td>
<td class="nump">829<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">829<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="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember', window );">Other Associated Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at beginning of period</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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">417<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">417<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(9)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveSettledWithoutCash2', window );">Non-cash restructuring charges</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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance at end of period</a></td>
<td class="nump">$ 415<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 415<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_PaymentsForRestructuring">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3367-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3602-108585<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_RestructuringReserveSettledWithoutCash2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in the reserve for full or partial settlement through consideration other than cash.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserveSettledWithoutCash2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<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> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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_OtherRestructuringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>90
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.2</span><table class="report" border="0" cellspacing="2" id="idm140470864140824">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Subsequent Events (Details)<br></strong></div></th>
<th class="th">
<div>Jul. 29, 2020 </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="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event</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="top.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="top.Show.showAR( this, 'defref_us-gaap_Dividends', window );">Dividends (in dollars per share)</a></td>
<td class="nump">$ 0.055<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Dividends">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of paid and unpaid cash, stock, and paid-in-kind (PIK) dividends declared, for example, but not limited to, common and preferred stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 405<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6957935&amp;loc=d3e64057-112817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Dividends</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( 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>EXCEL
<SEQUENCE>91
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( &6!_5 '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    " !E@?U0Z"U% N\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9)1
M2\,P$,>_BN2]O;3%B:'+BV-/"H(#Q;>0W+9@DX;DI-VW-ZU;A^@'\#%W__SN
M=W"M#D+W$9]C'S"2Q70SNLXGH<.:'8F" $CZB$ZE,B=\;N[[Z!3E9SQ 4/I#
M'1!JSE?@D)11I& "%F$A,MD:+71$17T\XXU>\.$S=C/,:, .'7I*4)45,#E-
M#*>Q:^$*F&"$T:7O IJ%.%?_Q,X=8.?DF.R2&H:A')HYEW>HX.WI\65>M[ ^
MD?(:\Z]D!9T"KMEE\FOSL-EMF:QYS0M^5]3WNVHE*BYNF_?)]8??5=CUQN[M
M/S:^",H6?MV%_ )02P,$%     @ 98']4)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
M" !E@?U0+3@7,14%  #C%   &    'AL+W=O<FMS:&5E=',O<VAE970Q+GAM
M;*6877.C-A2&K[>_0N/I13L3!Q#^RD[B&<?Y:-K$<>)TN]M.+V20#1- 5 @[
M_O<]$C9X9_"!3G,1\W5>'J2C]TBZW KYG@6<*_(11TEVU0F42C];5N8%/&;9
MN4AY G=60L9,P:E<6UDJ.?--4!Q9U+8'5LS"I#.^--?F<GPI<A6%"9]+DN5Q
MS.3NFD=B>]5Q.H<+K^$Z4/J"-;Y,V9HON/H]G4LXLTH5/XQYDH4B(9*OKCH3
MY_.U2W6 >>)+R+?9T3'1G[(4XEV?//A7'5L3\8A[2DLP^-GP*8\BK00<_^Q%
M.^4[=>#Q\4']SGP\?,R297PJHC]"7P57G5&'^'S%\DB]BNTO?/]!?:WGB2@S
M_\FV>+;7ZQ OSY2(]\% $(=)\<L^]@UQ'&"?"*#[ -,05O$B0WG#%!M?2K$E
M4C\-:OK ?*J)!K@PT;VR4!+NAA"GQE.QX9+,H0,N+05Z^JKE[6.OBUAZ(G9
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
MQ!XR<A1[VL6>_NO83;9T27ANLO"B$:)DBNNJ)H0]6'2.6(I7D;2O2!:[DGA
M.'7.A84'A-+0%<:#BM")O,@Z;;+O;L=\3=B*:CDJ6V)U_&3P&/!ID?7W"(S<
M])][4!ERC[\^*$X3=X_T01&,3N0)#-]O&N'@\:<O=OK:QMKUSU^!KAY,5DW6
MD.+/[0<.0GAPKX&#VG_4F_?B CU2AMC1VX,:)XF#6OA0<90X27KO@T51?$)S
M]*X"&E3A%WTJ"Y ?U>^FSAX6!*\&J*\!QC!R1?# 4)*X(O11.$M="3R@)#LE
MP?M%!N)!";YP12JO!-ZP<?]^@.#$O6MX8'$8PMB-VV,MFV#L1MZ'I7$<I4[H
MP<$UOZ9B9?LKJ4/;,M7<[+K1KH>[M9V+,WX'K^?0,[XP/9]M*][--PWC9R)6
M)9.@HDOM*KR:Z%4230_6?"B^L4W&,U>Z9;&O:]VW4F$ ^O<EY^KMPSCH.N'9
M/U!+ P04    " !E@?U00*\FC?T"  #5"   &    'AL+W=O<FMS:&5E=',O
M<VAE970T+GAM;*56;6_:,!#^*U;4#ZTTFI  I14@E9=IG50)E7;[,.V#22XD
MJV,SVX%VOWYG)V24AI=M7XCMW//<W</Y+KVUD,\J =#D)6-<]9U$Z^6-ZZHP
M@8RJ2[$$CF]B(3.J<2L7KEI*H)$%9<SU/:_C9C3ESJ!GSZ9RT!.Y9BF'J20J
MSS(J7X? Q+KO-)W-P4.Z2+0Y< >])5W #/33<BIQYU8L49H!5ZG@1$+<=VZ;
M-Y..L;<&7U)8JZTU,9G,A7@VF[NH[W@F(& 0:L- \;&"$3!FB#",GR6G4[DT
MP.WUAOVCS1USF5,%(\&^II%.^D[7(1'$-&?Z0:P_09E/V_"%@BG[2]:EK>>0
M,%=:9"48(\A27CSI2ZG#%@!YZ@%^"?!W :T]@* $!*=Z:)6 UJD>VB7 INX6
MN5OAQE3304^*-9'&&MG,PJIOT:A7RDV=S+3$MRGB]& DN!(LC:B&B,PT/K (
MM"(B)B.18>DEIB960.YX*#(@YU,JT2 !G8:479 &>9J-R?G9!3DC*2>/B<@5
MY9'JN1JC,S[<L(QD6$3B[XDD(/<"B169\ BB&OSX,+YS .^B*I4T_D::H7^0
M\'/.+XG?_4!\S_=JXAF=  \\ V]>UZ7S?]XG_^S]C1A!52>!Y0OV\%6EL;<R
MOMW.E99X\;\?<->JW+6LN]8>=X_TA4 <8S<AV$U"JA(28TLC"40+J"VN@J]C
M^4QS7 U0M=7VWW748GS48G+(XDVB[2K1]LF)QB3GV.M9^@OOX@)[/#EG0JD+
M(P%=T931.8,&SH:&H@SPNJU :7M=ZP0I_+:W0FUT@\Z.)N^-_.!Z1Y4:HN95
MM[NCS'NKMG=5KTVGTJ;S%]I@WMCUL1ARB1TH?"58;%PQ6LR;Z$=>:%$G1>=H
M;1RU&!^UF!RR*/)WM_IT!G)A!Z0BH<BY+JYB=5K-X%L[>G;.A\V;4;/F?(PS
MNQBQ?^B+@7]/Y2+EBC"(T95W>87_E"R&:+'18FFGQ%QHG#EVF>!W!TAC@.]C
M(?1F8QQ47S*#WU!+ P04    " !E@?U0SA=UL"('   9'0  &    'AL+W=O
M<FMS:&5E=',O<VAE970U+GAM;*U9;5/C-A#^*YJ4Z<M,('KS&P?,<-RTO<ZU
MQ\#=];.(!?&<;:66'*"_OBO'Q,&2%3[T"\3V:O7L>G>?7>OL437?]4I*@YZJ
MLM;GLY4QZ]/%0B]7LA+Z1*UE#4_N55,) Y?-PT*O&RGR;E%5+BC&\:(213V[
M..ON73<79ZHU95'+ZP;IMJI$\_Q>ENKQ?$9F+S=NBH>5L3<6%V=K\2!OI?FZ
MOF[@:K'3DA>5K'6A:M3(^_/9)3F]8JE=T$E\*^2CWON-K"EW2GVW%Q_S\QFV
MB&0IE\:J$/!O(Z]D65I-@..?7NELMZ==N/_[1?NOG?%@S)W0\DJ5?Q>Y69W/
MTAG*Y;UH2W.C'G^7O4&1U;=4I>[^HL=>%L_0LM5&5?UB0% 5]?:_>.H=L;>
M\(D%M%] W[J ]0M89^@666?6!V'$Q5FC'E%CI4&;_='YIEL-UA2U?8VWIH&G
M!:PS%U>JUJHL<F%DCMZ+4M1+B6ZM.HV.T=?;#^CGHU_0$2IJ]&6E6BWJ7)\M
M#.QLUR^6_2[OM[O0B5W^:.L31-,YHIABS_*K\/(/<GF"&+'+2?9Z^0+LW1E-
M=T;33A^;,KIM&ED;)+0&.T\#&ME.(^LT\BF-0J\0^ 8M[0_Y3UML1 E;>'VU
M515WJFR:;2YH&F-*SA:;?9^X8B0AG UBKY#R'5(>1MK;7M0;J4UE,<Z1J%1C
MBG\A!)9*&Z3NT1'A9)XFO#/JB+)H'A-LH\"^P>ZF?1=SR&2]EETJEL^@IX2R
MT(40%!@DG^PCJ[21>6%0J<#?NM/NJO(Y:FM)M.\!SG#*1XYRQ2C'/,%^1T4[
M1T5!1UTNEZH%[X")2PFO\ZZ4<U1*;6]HV6QZ2^@<G+/U$CB,D@,^\ID9N682
M$B?C>/"(8<9YXC<SWID9!\W\6M\590DOJ9$;6;?2!S!V=LZ2=(3.E>%)2OW8
MDAVV)(CM(\1H;5132&\>)<Z6$<TB-@+F2D&NQ1-9E.Z0I4%DUXU<BR+O0KRV
M06W?MC(KV4#1WB\N/MRIBYLD\=BAKA2-4SX1U-D.=Q;$_4494;X!8N8ZC<<\
MB488/6(XH5,EBN"!E' 0YE^J/EZ^L5#QF,PSGFY3$,KC/&;L_RM429_;AVJ?
MEQ.QFQ-Q@M-DY$6?'&,\FL@>LL?MY$"40KO7&+!W#<1NYAUV2TYKZ\XYJJ7Q
MXB8.GI1E+![#]HAEG+,)U ,Y$QI$_1DP"U/4#U!MH4$+1&FOZ%6.1*GEDM=
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
M-1WG_]2G_ZR^UXRH'I/(\44'^/8GP\CXZ>UD_+Q9:*/PN_]U1*Y3RW6<7.>
MW -](9"F:"96KQ#H@)S]Q@E=HO.14RZU/B/69M:4<;K@T$+';&G* :=P#=K8
M4AN'L-3M.EWKH>MAJQ=U^_YZ]\V^3PJCJ_V<20-1^[+7V\^:OL^Z""[KG+(W
M_L[7FX-:.MO4)):%,.4;JJ.U,]\X0WH3'[6OQ^V&^ 2=O#3>O_3E;^".JB43
MFG!(42HXOT1S4:6UEALC5\X[%M*@$[EEAG\C4#8!GZ=2FNW&"M3_M^$?4$L#
M!!0    ( &6!_5"*TI&B_0H  !T?   9    >&PO=V]R:W-H965T<R]S:&5E
M=#$P+GAM;+59:Y/;MA7]*QAUVGAGM-J7[;BI[9FUF[9NZ\;Q-LV'3C] Y)6$
MF@08 )16^?4]]P)\:;EY33KC\8HD<-_WG ORY<'Y3V%'%-5]7=GP:K&+L?GB
MXB(4.ZIU6+F&+)YLG*]UQ*7?7H3&DRYE4UU=7%]>/K^HM;&+UR_EW@?_^J5K
M8V4L?? JM'6M_?$-5>[P:G&UZ&Y\--M=Y!L7KU\V>DMW%+]I/GA<7?122E.3
M#<99Y6GS:G%[]<6;I[Q>%OS+T"&,?BOV9.W<)[YX5[Y:7+)!5%$168+&GSV]
MI:IB03#CNRQST:ODC>/?G?0_B>_P9:T#O775MZ:,NU>+%PM5TD:W5?SH#G^A
M[,\SEE>X*LC_ZI#6/KU9J*(-T=5Y,RRHC4U_]7V.PVC#B\M'-ESG#==B=U(D
M5OY11_WZI7<'Y7DUI/$/<55VPSAC.2EWT>.IP;[X^BXE0[F-NC-;:S:FT#:J
MVZ)PK8W&;M4'5YG"4'AY$:&/=UT46?:;)/OZ$=G/U7MGXRZH+VU)Y73_!>SL
MC;WNC'US_8,"_]K:E;I^L537E]>7/R#OIG?^1N3=/")OQDOU[]MUB![%\I\?
M4/"T5_!4%#S]OT3WUY*M;H-JR-<F1BK5^JCBCI1O*SS!9KZXHZ+U)O):;4OU
MY7VQTW9+ZJVK:Q.D 7730)I>5Z2B4U^WVD?RU5%]I,;Y"$E6<9NHJ\OSKY<L
M-)"R+K)$3ZIP* $;H)[EEXX?\<T(V%"ZJE1I0E&YT'IL\/1=:WPR=4N6/!8<
MT;\%->R 'CQLO+&%:=B3)W^^O?UPMF)?-20$=&7GG2Y=(Q" Z]N[;U ]5\_/
MKV[4XCUIU@B,D;5OH=-$]7<7 B6'C-60KROUSJ(H6EX8E@N$96OI'G\\?-<B
M^@DK6B!>C;;'Q9G::<3<N[U!Y2L+<)HZ6&GV!($LDLXJZ40PXLZ$!^&=1'>%
MFQOR9 M28>?:"H$B8$(IF6$[$-B W)>B9-,[$2)NB ^2A<Z*E"4$LFK96+%!
M4L^N_.XW+ZZO/O\#:LC:%C(>VO,W!6J0+4?27A'WNOHC%52OR:N;*^[6J]_+
M(JTV+>>:0N%-GQ*'O:")40V/,YQK>(44B!+7&)LW\F6M+;BCR^#(\&5*/23)
M)<N:A*6UND7D'PO0N#9U^5\ <4J^"#%!;(-"R\Q0+1%+-)#GFY/%=%]02-%V
M:^BF2(CO'@\=.A=-YK=<NO] !M2SLR6>1?2=X2;3*(BH#(PW7MR;KGYQQDJY
M*(O8BN+I\ZOG6,!Z9[QC:RO(EW!S%@(JE UE.$$)@=T#+]M =76<K89!:N."
M2?PJ: *(IAZBDP6"-M*0LL+P'\!1UMP53]QYHO.:"4-V!7.?K[#6N#+DRIHH
MD)5RY^8RU5E2F>!+^BD@++1S54D^9/,5XTL\<BYK^+KC$6//B<$U90$Z[-0&
M$\M@8&=&C@Z5*_7/D6>YO\<--*JVNZ&R$(*O?C7WO8!LGSZ#=!E;2EKA4>Z(
MSD2D%D!!]PTF(J[[K%IZDGMWI=["[:7\K[Y$C/:Z2G7,%KU#W>;"9EZG(WK/
M?^(:'6$C5\&!N&?00N1C*K%$-"5)K20&H'5486"=@X&GSILMZJJ"X-@]$!<0
M&E6G40(V ^U9$;-*KF(FA9!R1H/9HHB72>'C)U37 "_S/2X*%R+\_35,W&(8
M!EC#3FVGQB:4Y=&8&W3J%2*8 #-[-.<0((7[T R17P%99\R:53*QJU?W4(UU
M]GQ6U3M<A]GV%U06K$@;N.9GXT6;#<G</38,!L5N!F"$9"8D*^8]YN#/C#M\
M!,F 45+B<6>O3<7#RSFJ_CQH!MA<'5X8+=4'(YY"^;2  =';6BBII&*VB'!*
M:2+K);HND8Z^3Y@QIG*A!.<SH3X.0@*;0H!S8*2>L+0S9OQ'K! 7QMS=97*
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
M]O0=$<Z BP.FC I')R??OADIG[[-I8?H.OD>-G,QNE9^UH2D]+P!ZY5S<?7
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
MG*]Y7FX7)'IYW&$>0\VF0!;AF*"1?]IS=5 73=-XYM VOJK\]HRCT@R7OBS
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
M)SKE'JG_!8_YS#Q?2<J&?^@'WR*/H.RLH^8(9@6-U,-3/!_K< 98IM\ Y$=
M'G0/@8+*.^'$9F6H!^.]F<TO0JH!S>*D]H?RP1E^*QGG-O?Z";4C(]&N$L>$
MWIR41_#- ,Z_ 9[#>]*NMO!65UA]C4]8R*@F/ZFYR5\E_+73$\B7,>1IGK["
M5XS9%8&O^$YV![B3ME1D.X/PY_76.L/M\-<K$:9CA&F(,/U_]?MA,)RO2^*F
MMPXKH!VX&F%'BF^/U'OX26JV4&>%KNS/5\ 5P[%B<(<E-ELT4&3>DKV!1]%S
MNS@T4B@+%VR,%\7<+Q9QOIS!)[XSEU)?MH9*M!:F<99E,(MG:0'OI);<617L
MB2KKHV3IW .GBX(99GG\9N87\S3.YQG\SD)OJ6F%/O!U+<EP3P#S/DE_@RTG
M80"?0Q06#[2UI- AR+/,.=^+1;S(EG&:IL'M8ADOED78>@)?#5<;Q,O&MUYP
ML?+YN&LY3R\5?3]^79N8-=D6PQ!0AQCZ6I8UVZJN9%=/6PIC#K[&3T)U>"K]
MN3I'WB0-:)Z6/ *5_$=L%0Z 22A 60NS1_NBUD'=2^*@1V[,BJ-R"#YI/D$N
MW&=6RYY6J*$RQ^*=*Q+\\XGQ#/(>%?J3)B.<SV.O:"L4\%%H:F3IVZJ2;C@+
M0TW0=_O;Q_N[2VX4/K8*V6ORTJ5(S@9,@YR@'Z.^3SOMAEDS6L=)?3T,J/_<
MAS'_GNLC68'"'4/3R6(6@1E&Y[!QU(9QM27'PR\L:_[:H/$._'Y'Y$X;'V#\
M?FW^!5!+ P04    " !E@?U0+HT_0@$&  #Y$   &0   'AL+W=O<FMS:&5E
M=',O<VAE970Q-2YX;6S56&UOVS80_BN$T6(=H/I%<IPX2 (DZ8IM6+<BW0N&
M81]HZ6P1I42/I.*XOW[/D98M)ZG;=/VR#XGX<G=\[OCP>/39RMCWKB3RXJ[2
MM3OOE=XO3P<#EY=42=<W2ZHQ,S>VDAY=NQBXI259!*5*#]+A<#*HI*I[%V=A
M[*V].#.-UZJFMU:XIJJD75^1-JOSWJC7#MRH1>EY8'!QMI0+>D?^M^5;B]Y@
M:Z50%=5.F5I8FI_W+D>G5V.6#P*_*UJY3ENP)S-CWG/GA^*\-V1 I"GW;$'B
M<TO7I#4; HQ_-C9[VR59L=MNK;\.OL.7F71T;?0?JO#E>>^D)PJ:RT;[&[/Z
MGC;^'+&]W&@7_HM5E!U!.&^<-]5&&0@J5<>OO-O$H:-P,OR(0KI12 /NN%!
M^4IZ>7%FS4I8EH8U;@17@S; J9HWY9VWF%70\Q<_$5QR9P,/6SPRR#=Z5U$O
M_8C>1+PQM2^=^*XNJ-C7'P##%DC: KE*#QK\L:G[(CU)1#I,AP?L95O'LF O
M.^B8^.MRYKS%WO]]P.9X:W,<;(Z?'*R#>GRP3MU2YG3>P\EQ9&^IUP+\M21Q
M;:JEK-??.*'CH+0DEE;AF"B]CH,%!G 4K5<\GUOCG"C4?$Z6:L_4UP680T*;
M7#+?G5B5F!-^9U_DIBZ:W#NA\,?&HF1?7&HMS)QE'74QY%HZI^8*J\NM1KW8
MB/3%-?#@X+<JE0QKA"&SC"B\$73GJ2Z$L<*3!8>EC[""EI"^BQ$Q<$837'.Y
M)3;1YQ !RXK_U>;3AF$PR*HZUPW(B498H:!6BM-!='>#@2?$G.V46_^1P9R7
M=<'^LO-S 8K2EJ(/G&\=#]W2:*Q;8<MNJ>(- AA\D(!<(M@O&X?-3*M%W(5$
MD,NEC@%&X!L792$%:ZJ0:W2!1]R"%7*&&"WEFHT@%+Q!B(=D$$BO9)D].8>@
MH+O[ 00#/69C%.%S#HRU9#M/C0!SUQLO]7UJ8&=P:^#;6O2E)7I9<<H0$%6F
M<((X<^R;#/Z%D6S((Z.I6&'E9VDR&A\GPV$4>#9*CL<I=SD^;DDAL^OU(4"Y
M=.4N8%\!%@<3N(;341?79#(]C.MA>#;!7BE@D)&)S,T5Z5L254RR0<Q%W*M2
MY>7>L0Y7'##7QC,++.5F4:L/.%KM$7,.UWN[EM"@C]+*KS?!S78>3,:A_9_C
M\_D;<Y\I3MU].4^ _JCC39:DZ?'7X,D7@PHLR9+IT;B+:G@\_-^Q9)+N/$BS
M;(\F7QB>^_Z_;GR#>!W>$KZ6)/NH44\Z\2(D=],X6'??GHH_2=I8DXA7E%,U
M0R[,1HFXK$R#3'I#7*@6&$3TYHH3;@3W3(R3+#OBSDB<)-EXR,U43)+19,K-
M# +3XXR;8Y$FV73$S2,Q2C*(A0PKY]@7B(TG*>QAU>DTS(3+C)</ESBN6 "Y
ME;JA]A*:1\<?<Q?BJ"_C)28?[ STGR&^)]FDDX2.&6?L/TS:068O,A\[KBUO
M"A4Y4THPC0<V5 P7;2GCY!K,R4T%S#FPSAH?IW&%2P;O%*@V5SEN&6&Y3G8!
M1^?V>Q0KZ+5'F AL%2IM*EX"D,7#81M>8;D 8+:.^Z/G885Q_^3Y$Z^USTMF
M#T#8P*P=:\,192Q'_2R8S/H3A$G:IUZSG\9SZ< 7ZULV[2JI<-.CX&LLVUYJ
M68L7>/1@XY$ ?C8(UFCR;8*RK88'H1[)M>%2$V556W6:.?:-'M\?%!DFV.)E
M0R46$"C;B8&+\<JEM6M&L4?\3N+A%9S)5>!+2'.Q&F4H+882(&9$_!I$'1MK
MG@]DS6/@DLW1X35#.;J?5&*R0X4FE8V>E](NR,4CE1QEG[H('TUQ@?3R7NW9
MN]G;ALU"/6'JS7;5+M1W[/@[CT\\^0#R2Z=$?[/;)(5BL[%<&>)Q4-/">!5=
M [MTK,#YQ2,ZY>Z.=/=YVDDF>Z?QL;V0,W#1U#M6],5CKZI!YSF*6G01'MU<
M(..,QI?I=G3[KK^,S]F=>/Q1X UBI6I^%\VA.NP?'_5B FD[WBS#XW9F/)[*
MH5F21()G <S/#6B^Z? "VU\[+OX%4$L#!!0    ( &6!_5 J4-.3O@,  !4(
M   9    >&PO=V]R:W-H965T<R]S:&5E=#$V+GAM;(U6WV_;-A#^5P["'A+
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
M+"<#9N.7D7CA31>^1LR-1TF$92/PGF%I YXO#&;Q]049V'Z>NOX34$L#!!0
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
M2ZNQE483[($C&U$1Q-(H2<;TO4#RN$B_RX;RN-,89<6$LDG6K9+IB-ZUS0+
MA$J<MH .C:*X" SC*$W'5$R"<!)-\X0NN&7LDJY1M0J\TY1WTCC'[\3+9/F4
M/@BU">:O4#5A*,5NGH$_S3(:3_ 78Y%D.5VBSRHVWW&.$#0B2A!X-(Z9BXW?
M(,%BC9S>L<73F"9%2@6:-D\*I#]<E<*M!3%Y?#P.\N<1M$%1A>T ]Q!0Y]PA
M!YCXL6N4[0'U(HQ4>LOF?_7F'R'=^"O@2R#]=UR?@=,W!SW\2#*NC5P+5?$0
MQ)6P&TT:233=S'.[D?$EI3E^BFR"$[TTK>P)82\K\ MD?CCH9<<CCOQ9RH.!
MB[,P&'#AVL@IY5F!([ WYIZ:49NE*I>TD6:O$"[P#90:'H#"JMW4Q'!IK*Y5
MY7.SJXI/,D[ UD]Z9C-\MV30=$/4'QQ2P(J?6M*LA8&+GXN0E^KYTOZW(5,K
M]L6?8CA"]*+!*5@]4I3GN/MI[-7JOHA/@K_,)-_L__\5TT^@!1:VW#EW5Z6>
MFX><?<<.V'<N/MWV<CZ7X1;4@T[_%.JP4/:Q<'>)PH!P,C"^,!!^U&6P#_K;
MO?S-G?R'I9'RZU7OHHZ!=GM(.*RU7XWC1W%PN/<9/?^MOTJ\"O>(UWT8J&;?
MU'A^FNZ:\_;^'8?O(D'^-8J0\P'V*AU/>?&JB$9%[,DY/79Q'_;>3"MI%OYE
M:$,_A>?3GKI_?)Z'-]<=>WBYOA=FP9'4<@[1^&B2#4+'[A9.K_T+;*8=WG/^
M<XD'M#3,@/VYQN6Y6["!_9/\[!]02P,$%     @ 98']4.?BP&P]!P  8Q(
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
MF$_(=)\TN@>G&_\98:4=O.Z'6RD*:7@#UM<:UZS^@16,WY4N_PM02P,$%
M  @ 98']4$VP28-""0  ]!L  !D   !X;"]W;W)K<VAE971S+W-H965T,C$N
M>&ULM5EM<]LV$OXK&%UR%\_0M$B*$I7:GK'37*^=:9.)+^V'F_L DY"$"4DH
M &A%_?5]%B!I2:;L9.)^D?@"[#[[O@N>;Y3^9%9"6/:E*FMS,5I9NWY]=F;R
ME:BX"=5:U'BS4+KB%K=Z>6;66O#";:K*LW@\GIY57-:CRW/W[+V^/%>-+64M
MWFMFFJKB>GLM2K6Y&$6C[L$'N5Q9>G!V>;[F2W$C[,?U>XV[LYY*(2M1&ZEJ
MIL7B8G05O;Z>T'JWX'<I-F;GFI$DMTI]HIN?BXO1F ")4N26*'#\W8DWHBR)
M$&!\;FF.>I:T<?>ZH_YO)SMDN>5&O%'E'[*PJXM1-F*%6/"FM!_4YC^BE2<E
M>KDJC?ME&[]VDHQ8WABKJG8S$%2R]O_\2ZN'G0W9^,B&N-T0.]R>D4/Y([?\
M\ERK#=.T&M3HPHGJ=@.<K,DH-U;CK<0^>WEC5?[I]!IR%>R-JF!KPYVZWGZA
M:W%^9L&%UI[E+<5K3S$^0G'*?E6U71GVMBY$L;__#.AZB'$'\3I^E. O31VR
M. M8/(['C]!+>I$31R\Y)O**:W%ZZT1^S[?P,,NNM.;U4KCK_UW=&JOA+O]_
MA-FD9S9QS";/J-]'*5*4OC9KGHN+$<+0"'TG1D^R86X!>U_RVK#_KH1;Q.OM
M/_^1Q='L!\.,(^"5PC=<%X;9%;>(.P/_9K)F^2Y9T9+-%<+36*86G@)3:WIO
M&*\+VFNUS"U(^I=-+:UAKT8?;CZ:T4G(K@QMA'U%;]\ ;'MT;,4+%DV#)$F#
M\7C,#%D.M.^X+/EM*1B2$EO"<A:D"Z$9D?>LUB1IV(K=@]+"+P>BC;0KH(0D
M0N<2HJP!53#QN>$EL\K!0)KZA+QXQ\M&$%([H#BHI8)"/%<HC-9X2 6WPNEA
M*6JA>5ENV9T@7=T!Z4(UND7WKD5'9EFH$FE2UDMFG8 ^5\H_A1EDOJMSG^"D
MW3JMT&HCOYQ6%(ML+;14!1,4D?OZ?LUNO%+_</E+%*<[5U?+I19+$N-=8XV%
M+(2,.ZO]*')1W4*2)")*T9Q%<9#-Y^P%2V;A/&4_M8J>SU*61F&:P1>]J@OV
M*@JR.#YA\32<S!C2ZT)(6@O@\"RI:<DDCDY8.@[C;(#[G@PLBH)I$H'S9!Q.
M4C8-YQEN8@($\BU;I\^AW2G\BS8G #EG:9C13329!-/YI#<.6:X'*)Q/PTF<
M/8=HO@+V:!Q,LX0(STGZ:9BEA&H\"690#ZWX&48K"NFLU[I<Q\>SW8\&SQEN
MS-9*NTVM3S;U_K9[:)895<&WE:Q=$-/J16,;+<)>M(<"(4QR7N9-R>GQ[9;Q
M];K<.NTC8(R5E7NQ\'8#,:;)25H1#M&$WK.YU#Z2S,-LT04E$ J>]_[J\IN/
M5@$F]YP;XT)D+V VG=MRQ!?Z"=@%T>,9O 8$+82/AK8RL9LN/+H'^R9T=\FX
M=>['WGV0YM/I O2]&J)PREZR.)SAEZ[]U=M.RP6"M$ DLJT49<'@L0E>C\-D
M[OYV[_H]=PJFD"4%=T+$#G[Z=5;HBKV"%K>":W,"GX-[AW'[GQPB);OH_4<;
M>+.O LV:<@JS:/5,H[>P#;)YXRKD9J60,!TS6M\6 ?>&LBK9!<]<#779E!:V
MKNHM'AY5QT]=KO2NGS=:$]V#5=(<.FA=@Y/\LW.+G)O5_:9"Y"77?N50&KU6
M*'@NJ2'UY%9I7[_<?D_QOA*V)/)2.1]LJXVK':H^R/[AH 5)ZV+@^0/5H[3<
MRIIWD;Z"CA480:,[N[ZF++F*\[15G-"R6I=R'YBK)YH7.PGF"%?'+CSPQSUY
M>Z=!N48[CB2B5>5H051520 #7TOJK%0AROOW  ;DQ%G<P27:_@0-QG(I=%_&
M32LL!@>?=QZD!6>>4U><ORHG%8WNO,K>)Y$V19FAFNKTN)\B7/YZ$<W#*'%O
M7T19.,5R.!4I!IHHM\^/][ !^$:T69C&/=IT/H36*@N+H;B IY'Y47"B+_U=
M<_*]NDSF00),U!9ZB),@1ON(^^?%^7TZ3),@ [(>93)%\9\_CO)1*[>E];FT
M& 5Q-KN'E_F;Y\'V?9I+9L$\C78T-PZR=%!S'^['#-]0?_1C!DT9)]_05?_+
M,-KR7'WT51N_OZFN'SK:.*=CZEV1$9*^:YXDL>N:$_:[W^QR;/Q#_S_<-+<]
M<SIYP/:@YYU2DXN5L_FW9AVGHR>2(UGLZ\S?A@E:]IFWLQ-ZP &U\&MKY1&X
M[-]*^+TH!AET(D*]W\FF\^QV''UL3-\9S1D=0EBYD% [^;- 859;0<W\FAH?
MVH:$AIY[HP!6-6NTN:KN9W*"2B$J:@D1*E[S]GR#\/):00Q]L!9]%_//.V9M
M\]Y!:MNQTD\$A&QO(/!=V(.Y )1G+VDZ(/H#!PT49T=@]@2B^*5;-PCQ+<T,
MU/+NFF@A-689C/,:/<?^(*7%G6L52*T'8$E>=)>^V?,3"2<]Y]0&NQ%G\!P$
M")%+9VTNQ:8^MW'J/I_>//%5P6\E5QD^&W%)N*G1I:IEC016#%/4PG?&X%BK
M^K3U7_&YH;3FM1Z04&53W#>QNT<W% &!Z]->3-,@ @*7>#<K"4W+_9GQEOCU
M>%S[Q1\FE#9U0J88PXB;3W8+RZY;#(I$J,B&G6A 3Y.MY5\ H!8+:7=1'*^/
MCV0A"!GM"^HT!$>! 0MR%F_FR=C7)0?%N9ORV8*FDCH79>FS+N]FAOUN&76&
M3JH!,2=QBL:=3P=M&Q/$LX$:[-]^G52')7X<S*<[-3Y"1Y(\7N7_)F-\31UM
M0<=QD(VSG>H?9)/H*;4\1O] *7$2Q),=^FC1_!GCH5)^.Q*S;N[E:VEIZCQ2
M9 'K0;$/!QN2]J##MR-/:A\C*%B[1R3Z\(E).XR^042K4A;<MT?XJQPC@'V'
M/=R'_"MW-*0: V68D[_WM.2-\N?%FL:X1M#YV-2=DL5T=CB+9O2;C:FM0Y+(
M5P$2*&RAU@3<&US42UD+X5)]3.'(DB!%$S4+9M,9HS">L1N$(=X'W>FKW\F+
M2M;25]8[P=(@1JN$X,@RAC8]B2?T-TFI.7+9@$X"7?S0R9WS2;IPSL.&O@Z<
M[7R)J81>NN]--(TWM?4?9?JG_2>M*_\EYWZY_Q[V*]>0TK!2++ 5G5HZ8MI_
M8_(W5JW==YU;9:VJW.5*8$K7M #O%TK9[H88]!_Z+O\"4$L#!!0    ( &6!
M_5#!NY^XOP,  ,,(   9    >&PO=V]R:W-H965T<R]S:&5E=#(R+GAM;*U6
MVX[;-A#]E8%:M"^*=?$E;FH;6&]2) 72&+N]/!1]H*611)@B%9*RXWY]A]0E
M,I!=M$$?;)/2G#-G+N1X<U'Z9"I$"Y]J(<TVJ*QM7D61R2JLF9FI!B6]*92N
MF:6M+B/3:&2Y!]4B2N-X%=6,RV"W\<\.>K=1K15<XD&#:>N:Z>L>A;IL@R08
M'CSPLK+N0;3;-*S$1[2_-0=-NVADR7F-TG E06.Q#>Z25_N%L_<&OW.\F,D:
M7"1'I4YN\R[?!K$3A (SZQ@8_9SQ'H5P1"3C8\\9C"X=<+H>V'_RL5,L1V;P
M7HD_>&ZK;; .(,>"M<(^J,M;[.-9.KY,">._X=+9ILL LM985?=@4E!SV?VR
M3WT>)H!U_ 0@[0&IU]TY\BI?,\MV&ZTNH)TUL;F%#]6C21R7KBB/5M-;3CB[
M>[0J.\$#-JW.*HH.#EJ5FM6;R!*[LXFRGFG?,:5/,*W@O9*V,O!&YIC?XB-2
M-4I+!VG[]%G"GULY@W0=0AJG\3-\\S'4N>>;/\'WYF/+[17^O#L:JZD;_GJ&
M<S%R+CSGXG](W]<QO9/P(;/JB)KRD% V;(5PK^J&R>OW!O:*Z1Q4 :^YID97
MV@!K;:4T_QMS;ZL_4Y+9MW1:P[C[N/TM6Z;JFHZ*<5IF '?&F5 =\+MODE7\
MXU",&Q$3!SFDX3I9>6Y3,8TDQ@(C6F.]\R1-POEB[0U::A--1-Q TX4: I>9
M:',N2TC"-%D^3;1,PGC>.<I;[0!.D:TTXHO:M2$TJ+G* 5TSPGM& B']89 O
MD)T=B)%X=W.Y]9$))K,N22_7X6J9.OH9_*(&"1?4>!/MOW'MLC=V\0P^R%Y,
MDGXAEU]14$8W6YYS=\4Q\=_*>^AIS+06?:I(V5 6NI&$\%AT^6D;HJ!=(]#?
MJ[V7:9,.2/+QZZ11:C9MEB&K@V^D1SW.4"- T=J6\MTET]!-2W/(MX87P.#,
M-$<ZS^2_8#Y1D_X)@5&D)2CB]8')TG29YJ0E\TV4<]'Z" JM:D *2%T1 ;MK
M@EVH#H3QR2)A/,.PDPSLS+A@1R[(CAS)'#)F*@J-D-1/*&E,WD;.;XNH*!6G
M:2'].>/VMD*NIU1;5N F,"'TB6;TB C=TK1,6L?WT J$)#XN7R1 EYO/4T/]
M3&9*NVQ2 &=F45Q!8JDLIW7N+*5A?CR:V9=NPV@R6&K4I1^?3F4K;3=CQJ?C
MA+[K!M-G\VZ\4U^57!HZ>@5!X]E+&HBZ&YG=QJK&CZFCLC3T_+*B?QFHG0&]
M+Y2RP\8Y&/^W[/X!4$L#!!0    ( &6!_5#3XB)/V@8   83   9    >&PO
M=V]R:W-H965T<R]S:&5E=#(S+GAM;*U8;6_;-A#^*X27; G@V);L-$F;!$A?
MAF5 L:))MP_#/M 29;&52(VDXF2_?L^1DFS'LM=N Q);HGEOSSUW/.ERJ<T7
MFPOAV&-9*'LUR)VK7H['-LE%R>U(5T+AETR;DCO<FL785D;PU N5Q3B>3%Z,
M2R[5X/K2KWTPUY>Z=H54XH-AMBY+;IY>BT(OKP;1H%WX*!>YHX7Q]67%%^).
MN$_5!X.[<:<EE:505FK%C,BN!C?1R]<SVN\W_"K%TJY=,XIDKO47NKE-KP83
M<D@4(G&D@>/K0;P114&*X,:?C<Y!9Y($UZ];[3_ZV!'+G%OQ1A>_R=3E5X/S
M 4M%QNO"?=3+GT03SRGI2W1A_2=;AKW3Z8 EM76Z;(3A02E5^.:/#0YK N>3
M'0)Q(Q![OX,A[^5;[OCUI=%+9F@WM-&%#]5+PSFI*"EWSN!7"3EW?<\?A;T<
M.ZBBA7'2B+T.8O$.L1?LO58NM^R=2D6Z*3^&"YT?<>O'ZWBOPI]K-6+3R9#%
MD^ABC[YI%]?4ZYONT'>K$ET*AO#86VF30MO:"/;[S=PZ R;\L<?$K#,Q\R9F
M_VBB'\']TEZ,W8#8B5:)+"3W+-49<[E@GY1T(F5WCCOLRD0J#"^8Q6WMM'EB
MB3:5-OB1.408+K27?*/+BJNG[[\[CZ.S5Y;)X"5M$X\H92N&3!LFLDSX@N@4
M#-F26X:_3!<H5?N2W>=&B)-R+='L3CYN+B!O@L7GE+=X$N[:+.[][7;++78T
M%TIDTATS[MBGT=WHZ^(^BJ-C=LCB:./#([<6O+!#IM#C@&^KM3''CKQ\M/:/
M>D<UJY6-5 (N(Y23D#O%CJ,SDCDZ/>ZNB6F)$2D4QK3HE1[%Q]TUT="(QO/6
MMA$%IT0C>2CUY O3%=' 0N9B74-\X;]F6XI:\-84>:^%JXUB&7BE%I9%,PK+
M<R)^14&>;=S>MW'R]#-:#GJN8]'YQI:^JU_ -],X13'/FN^^W)X&D&D+V8YH
MW_V*KDS:QF\K4S(O%5-U*8RN+?M<&VE3F01D.-94ZKF.AE^DC.,N!V^]H,PD
M4)#.HDE^!L])Z3-YNUUA0W9+ *ITZ+6]R:7B(^_?BGH=&>!J%(].#\G'1LQ+
MQ6')"P_!5 1FFHR0O:\F-"@:1X?>O%U1+T$? #HX;"@^'&<LXP^0G!?P"*82
MUUK:+FU2><HJ81(@A*.655HJ1Y6.(TV[W(NY5;7[<&Q;ZB0H=6J9V*[X@-?9
M#MVDUG)0H=4 OZGZ1^P]5]CKB4:I2T%G@].-X,I1_8(;Y8F;&5WZ;!9B =PH
MP>ZI0QEG94%UC 4<Q)(R6CP!):D>A&VJH3+Z <Q@A4Z@( -UH-A[MT"_=WF(
MH,<JAVKM&;[)'V]3:;?'[FB#VM3A#2&7]G0 XK.TWB4R2HBM,HY-;BF$"LLB
MK<,DDS6\KFIPQX(7O*D'XAS*+9PDB;;.VUXH^1>LDQ1\Y3AL (01H)TCNYT6
M[T#H0N(1^92TZ('Y+[Q#'PO5<;&')/^2>_"K"B:+IY#'V'_.OIF/MP@L1>\&
M<,/U8W1'\IJV9C?:+J0(WX(Y4XN3NFK/\@JV#'L"N[PL3Q)38U==Z;9!^VV=
MJE7[W@9?L5I](_ZS@'^TKTC_!_Q'[-UC4M1I&T[C6\# ][$&/Q1+:8>]LTI/
M!'XFZ8Y+BN>0/O$ <D)[,-<%^@.9]JSQI-O8U8P!7Q^MY\4VP]9[^C.#9X<!
MY1?[#/=SCWH%-N*1RM+%CEP.8:X?W^?(=M:>A14*G#QL3%,8A%03K<<ZK?TD
M66(":OG;9.D'2[W4MZRY("^H78IP]-& Y0F:XR%(])RZ%"7.S;7Y8C=IGQ$>
M@\B*N">>N%WPN\#J376#0@^31^PMG&V W8*ME_J]/8*S@[-H,IQ,)AL)14#"
M/(A0;KTC*4X184Q3_ W945#6R9(')' ^XFCQ8(-TO'!2^-D>C A(A2KC)88C
M9,AIQPO\<!"?3[T_.TG1"\=]3W$V4?0$$=P@_'"D6KO#V_!\<1!-A]-IP BW
MB/T9L,M<)ODJLH,H'DXGL=^?%-S:,.#YKJ"T.DEJ0W,YP_/3'+T4PP$9/8B&
M$Z@DH55RJ%&L\D(EO*%A(P>=NH!%@)6\W1=A3S[F'.,AC6XA=H02D5<X<++>
M#NB/=6UE,VK "+.H&.Y'HS:%?G@4'KQ"EM+QL'OM+$J$(9DU5>A5$L$-&[\Z
M2BYUC1%Z[H\?PB74\_9#X_I&S"'=+% [>JX.7!KU/52/U]Y-8)Y?^#<P%JT4
M@(;7%-UJ]Y+G)KS;6&T/;XC><[.0BF;!#**3T=GI@)GPUB7<.%WY-QV8:9TN
M_64N.$9NVH#?,ZU=>T,&NE=?UW\#4$L#!!0    ( &6!_5#">M[EN ,  +L)
M   9    >&PO=V]R:W-H965T<R]S:&5E=#(T+GAM;,U636_C-A#]*P,56+2
M8GW9B9,Z!NPTQ;;  D'2=@]%#[0TLHA0I):DXN3?=TC*BK-)7'1[Z<$FA^0\
MOGE#CKC8*7UO&D0+CZV0YC)JK.TNDL24#;;,3%2'DF9JI5MFR=3;Q'0:6>6=
M6I'D:7J:M(S+:+GP8S=ZN5"]%5SBC0;3MRW33VL4:G<99=%^X)9O&^L&DN6B
M8UN\0_M[=Z/)2D:4BK<H#5<2--:7T2J[6$_=>K_@#XX[<] '%\E&J7MG_%)=
M1JDCA )+ZQ 8-0]XA4(X(*+Q9<",QBV=XV%_C_ZSCYUBV3"#5TI\YI5M+J-Y
M!!76K!?V5NT^XA#/S.&52AC_#[NPMD@C*'MC53LX$X.6R]"RQT&' X?Y>P[Y
MX)![WF$CS_(G9MERH=4.M%M-:*[C0_7>1(Y+EY0[JVF6DY]=?O:TL3I9/:"F
M+,!=PS2:16()W"U)R@%H'8#R=X!.X9.2MC%P+2NL7OHG1&IDEN^9K?.C@+_V
M<@+Y/(8\S=,C>,48:>'QBG?PKIF67&X-W* .4<*?JXVQF@[&7T?PIR/^U.-/
M_[N2WP0$XS@;QDT8WR&%4C)1]H+1-# #M1)TVPQ\SR781O6&R<K\< &_-1KQ
MI#U(%-SQQY<#I#N.N@>K2)V5G1^=6S/#2R+S%<E2M02_YTIEP5@B0XF ["R/
M\WE!;187V=S;Q73F[3P]A^NZIJL+JH:*B]Y=7L O/;=/P'9,5P8^?#?/L_Q'
MF,99D4(19[,I]0OB\DJJ@07M/'1/'-0#$RCM<6ZS>#J=A_;\W+>S? YW5I7W
MH#I760Q8!5VORX:J \SB>9K%:9KZS4[C@N1RUGZ3>E3$0<3@6+U6C0H--W%(
M[2&OJM>NL0W2;\REW\KL$PD=:JY('WR=SY@*J>G0ET+Q% \<LZP8&5-\:;"H
MXON-#&MQQ*0#Y;(=PZ:W@9Y4ED9+T;O-_'E[/HVN[A[F3Z)?JP)@T 0V6++>
MN(#P*4 R:?G)WFD"MTBWE)?N;'O1H)?<.M4M$TZ-_&QDGTW_1V)/8%55W(G
MA!/[(%"X4FW'Y!.EHU3:>3*J]JW7;-!)*&/>HQ V?3O!G;)TJ#D3+V*'Y_/N
M=:';0HN=5O\JB30[<GO.8#@IW R\)E1G'.B _#*=[@"^E<T#X?\A3]^:EGVE
M>GD')F^5_N3@@]JBWOIG@R%!>VG#MW4<'5\FJ_!!?EX>GC6?F-YRJA$":W)-
M)V>S"'1X*@3#JLY_GC?*TL?>=QMZ7:%V"VB^5I30P7 ;C.^UY=]02P,$%
M  @ 98']4&H7@?Y2!@  :0\  !D   !X;"]W;W)K<VAE971S+W-H965T,C4N
M>&ULI5?;;N,V$/V5@9NV":#$EGR)<P5RV:);8)M%DFX?BC[0TM@B2I%>DHKC
M?GUG2$EQLDYVBWVQ*6HX<^;,33Q=&?N/*Q$]/%9*N[->Z?WRN-]W>8F5< =F
MB9K>S(VMA*='N^B[I451A$.5ZF>#P:1?":E[YZ=A[Z,]/S6U5U+C1PNNKBIA
MUY>HS.JLE_;:C5NY*#UO],]/EV*!=^C_6'ZT]-3OM!2R0NVDT6!Q?M:[2(\O
M1RP?!#Y)7+F--; G,V/^X8?WQ5EOP(!08>Y9@Z"_![Q"I5@1P?C<Z.QU)OG@
MYKK5_DOPG7R9"8=71OTI"U^>]:8]*' N:N5OS>I7;/P9L[[<*!=^815E1R2<
MU\Z;JCE,""JIX[]X;'C8.# =O'(@:PYD 7<T%%!>"R_.3ZU9@65ITL:+X&HX
M3>"DYJ#<>4MO)9WSY[?HO*US7UNI%W!5"KM =]KWI)H%^GFCYC*JR5Y1,X$/
M1OO2P3M=8/'\?)\@=;BR%M=E]J;"WVI] -DT@6R0#=[0-^S\' 9]PV_R4^@"
M;E$)CP5<<%Y(+]'!7Q<SDJ)$^?L-BZ/.XBA8''TOLV^JX:(\=DN1XUF/JLZA
M?<#>=MUPH^&#6$,VB:PEX$N$*U,MA5[_[.#2"%N F<.UM%03QCH0RZ4U#T2"
MH +;5+E40H/4'CF<X V]+NH<7VBDUF"%9_G<..\2VO"RDO\B2.]@5CORQ3FH
M3($J":2+HK"\Q7HDJ<D] PI:;SZ]O]Y/CX!T%UC)_ #N:7LKK%S510"]4&8F
M5"A\ZD\Y1IBAW$EM\.Y14NFB6L/TQX# S.>2!'-E7$W*HY7&)2!C03P"],:3
M\N<(\H;KN345"SD,C<5HQRS-\(71G722C$;C9#"@<!"D52GSDG9'R>'1E'>A
M%,04(G>XW%AV2^IHO;2(^Q67%1#/TA00HT&E@5UI!)\Z1NCH3S],LVQP<KL-
M=7B7GH#132"U,TH6H0SN//U1MZ7 $<Z;&%D2:,/ #7Z3 &$1\'%)B1039(;!
M@X6F\!=01+MLQ=$N82R%FK-F!AUUSHVBD1#$Q$QA,Q?H>&1_.^^[@1U3._+;
M[1W#?8C1165J[>'=<SSO=5Y;RHBG14/M_1.U3<=Z0>J-QGW*! H"6FJZ@0G2
MJ''.B;T#:9H,IX>\&-!BPDR&OO%,/M0$#).CHW'S>T/&+0CG3"X#Z5$D30:3
M(8S2H##D"R]"BGP%21-XXOB!XJ5S3*!$H2ACI*;TCCLAZVM/M9.'  ,W$:H!
M2F)C(9VF@-52F372SJHTL$(.K0Q86ZN$E61+\8 Q6;7Q<BZ9Z5)XYG1-<TLI
M9GWC"+T2,*\IA B<90= DW3#&FFA,'^NI6V;#,7"MOA(V9HS1_#<DU5=T7MJ
M2(&!6!"QPYDW*0K>;&3F_ZJN@QBRE728--7>*DX:\CDYGW#-C*Y=PVS\]""5
MG<-)J)H9QC,=).K MBF5Z'CK7>P6,A*U66SXF&,@GZNHMN3#YUI8\O^IPMY(
MR39KGHI:(7W8@))B)I7T:S S)1>Q_F/Z=(T^2E(*T_<B-W!I8\]@AV-K=:&W
M$KHE.6$9+</$T'K#,F^0U52X41U###W!80-1*&<ZG'QH9:7'?;+ 6L*ITJB"
M(?  BQ@"TI"VG%/+D.NVF?(1!D.?D1BE3-'!#2E<BH)8)KN$A<FB1*= /H%Z
ME<SORB^*,.K-H0HYNU8 C\[8/LD_.D\Q88:YE1J:C6T6'KS64HA[[J4T@5H2
M%2Z([SF7W7-.NO1\YEPSU-H<W)JW'?BNH; 8H>6[ A;?U.5%_/I:M[PU//"D
M2@]/W(LIT'P ;53&EM%WD>>VYK*C@M'N[:EW*10W2;CC#^@OITO7?>\WJ+EL
M6TM78IMOKP+_,2P73V&)VW%:M49%&+772&UY1M+#E)."OH!V@B=I=O*5U=89
MWXZD.'%XJ#23Y$HX2D6QCK6R.THFX]$>[&83^CG:"QM3^O_=Z/V<1;?/W];V
M[C!)1^.]+YZIP=-%2'.'*H5>4&F0^Q#7#B8#&,,A'&8O.'A>%#LP)L09_4\S
M9F.4\D \3 ;#"6S[,.]O7'\J))A\R:,VQ-\$\2;4[7;WR(MX?7H2CY?0#^0E
MC4ZJECD='1P<CGM@X\4N/GBS#)>IF?%T-0M+FK@TM5B WL^-\>T#&^ANU^?_
M 5!+ P04    " !E@?U0!\REIUP"   P!0  &0   'AL+W=O<FMS:&5E=',O
M<VAE970R-BYX;6REE-]OVC 0Q_^54S;MJ2(A0$L[0(*VTU:I6M7NQ\.T!R<Y
MB%7'E]H.E/^^9P<R)JUHTUYBGWW?C^^<.T\V9!YMB>C@N5+:3J/2N?HBCFU>
M8B5LCVK4O+,D4PG'IEG%MC8HBB"J5)PFR6E<":FCV22LW9G9A!JGI,8[ [:I
M*F&V"U2TF4;]:+]P+U>E\POQ;%*+%3Z@^UK?&;;BCE+("K65I,'@<AK-^Q>+
MH?</#M\D;NS!''PF&=&C-SX5TRCQ :'"W'F"X&&-EZB4!W$83SMFU!WIA8?S
M/?U#R)USR83%2U+?9>'*:32.H,"E:)2[I\U'W.4S\KR<E U?V+2^Z7D$>6,=
M53LQ1U!)W8[B>7</!X)Q\HH@W0G2$'=[4(CR2C@QFQC:@/'>3/.3D&I0<W!2
M^Y_RX SO2M:YV4.367QJ4#NX7O/73F+'6+\9YSO$HD6DKR!.X9:T*RU<ZP*+
MW_4QA]/%E.YC6J1'@3>-[D$Z/H$T29,CO$&7XR#P!G^;(_R89]89KHB?1_##
M#C\,^.'_7.$_(CYKN&G4%M+S]A9.P)4(EU350F_?O1FG_;/W%A8D3 &TA"MI
MN,K)6"[(7 F#!0C(A2VAD&M9H Y>;Y->,AI!C=R4)3OU +XPM7.1%FJQ%9E"
MX'Z9-RLNO^X_@",02K7*DE2!?!I#^6#B($0P?)"Y(HO>R!K+:5I[ .L/6UCO
M3]<>'U1QA685>M5"3HUV;4%WJ]US,&^[X)=[^Y;<"K.2VH+")4N3WMDH M/V
M9VLXJD-/9.2XP\*TY"<-C7?@_261VQO^@.Z1G+T 4$L#!!0    ( &6!_5#J
MQ UQ^0T  )<J   9    >&PO=V]R:W-H965T<R]S:&5E=#(W+GAM;,U:^X\;
MMQ'^5P@5K7W O7WGN/$#.#MIZZ)IC+NX^:'H#]0N)3'>72HD]V3EK^\W,^0^
M="O%%Z1  <.G?7!F.,]OAOMJX_RGL#(FJL]UU837LU6,ZZ_/SD*Q,K4.IVYM
M&CQ9.%_KB$N_/ MK;W3)B^KJ[/+\_/E9K6TS>_.*[WWP;UZY-E:V,1^\"FU=
M:[]]:RJW>3V[F.4;MW:YBG3C[,VKM5Z:.Q,_KC]X7)UU5$I;FR98URAO%J]G
M-Q=?OWU.[_,+_[)F$P:_%>UD[MPGNGA?OIZ=DT"F,D4D"AI_[LT[4U5$"&+\
MG&C..I:T</@[4_\+[QU[F>M@WKGJ1UO&U>O9BYDJS4*W5;QUF[^9M)]KHE>X
M*O#_:B/O7E_-5-&&Z.JT&!+4MI&_^G/2PV#!B_,]"R[3@DN66QBQE-_HJ-^\
M\FZC/+T-:O2#M\JK(9QMR"AWT>.IQ;KXYDZ,H=Q"W=EE8Q>VT$U4-T7AVB;:
M9JD^N,H6U@3U-/\Z>G46P9H(G!6)S5MA<[F'S7/UG6OB*JAOF]*4X_5G$+F3
M^S++_?;R(,&_M\VINGQQK"[/+\\/T'O6Z>$9TWNVA][4AO]],P_1PV_^<X#!
M5<?@BAE<[6'P3H?5L:+_U;<_M_9>5Z:)X5CIIE3OFWL38DTWIE3[NQ F Y@M
M7,=_0JC;!CMKZ_1F4!N$!?TMC(_L Q'[AT^49NV"C4RL-/.H@BE:;R.I9V/C
M2CEOE[;1%0C'_ #KXLH;HVJQN?.J,H$8>:.*2H< %J9D?B2VZ<5F1O1:B! !
M/\&Z=I#I%UP4+L13]>[W$'&)!!:-AYRZ&0M+9+RA=$:^,-X5-*BV1ON\HZD-
MM=YC(U!PI_E3]<V46)-,1G)U[!ZR:5QS,LGJ/:X#EAOUSM5KW6S_](<7EQ=?
MO0QJ36Z]5=&E!?@SK2^S6!C.E4/!(%!4I0/CJ,SGPD",:!H6;]\&'ZEW[+$T
M 3E(#(\[]]I6>EZ9$]2>DP 'Z;S#P^8^^<="6Z_@/JTY%KYM R85>\P2&A:3
M5BX$ Q=LX/SDG_HSWRZ\*>$[^:DWA?-(4*2;L *GE:M*XT-2(GMJW))P#BKV
M\,@:I7!%-0KJL@VNC7I*U(Y.U>T^*7@+>+EJ$ZML291:KZE84:Q4#J[!&R)K
MIBC@IQ)@4)<-G+3('2%&;=L:/O/ J-K;0&Y&L51@ P@6$#GNE%GHJF@KUGK+
M+Q+ML#8%19FR)223>"/6M8DK5YZJ'R8\K+*U)2IK[6,#K:WL&KN#N=G;((CD
M6+P!@PYX45PGPFIN"MT&,^G!O:,3-0Y ]J/K/V:-##G3]@94U(K#!D06<)6F
M,,K=LR..5G6\DBE(;:"S@!\WA84OKU-Q$ T4VOLMO<3^)U+8D:#$=6X, 9BR
M+2AJG/K%>'><Y0,(<1ZN"V-&;^<MFS\Y>7)&/=ZZ>)GF*$?A+F#H4_6=;H"A
M^ 4$E(W.2Q9X**&-0W)A*@V06T,"%A9$$%]]D-&]TL"H "-&;5:& T$/(XG\
M4>(C;M?"$_2L[Q3",N-]I"NQVX \WM8C@;9C8Y/XXY)P/#*SI@BC(,NB<:28
M@LHF,X<W K&1$WI7[Q-\@:KO*+.];Q)%TN'T;LUGF"Z,I4@:%!L@-@-M?> D
M1BK? IB8""#8HJA[3N%057+-$G(T9E7LYH.D @*F-F32^>U.O;]9@)'FOY0M
M:Z*95)+D'#RKP%=3$%(F&"5AXID]7X+L5U[.66>^S1)22N1ZM>-:OVDW !PC
MCLB!XLU8-0H9 H\2'E!A;71H?2HD[3R@<) !D%2L*^$K??)[8)O.&(L697-H
M)\D9!:1?&HY;6M^]/E;,*(%,EIC=C0GP*2@KVHD:-?N>73_7.&+;!',T(X6(
MYS<!N;'D.G)'Z(W#'1OZ?L#R1_*,TMRC&5Q+<E5(1!8(H?/+Z0WMAA<J+A5F
M<HX>*%!RYU9-.L;*W%,O XOT(2SUAOU;SVU%,06^O8[)Y3B#]X22%H+4,@(T
MI"KS.5VD5'&LL X_4"CEA:QQ;)91-D!)< V+28]#NR8,P]=4 2 ")V/B): P
M)_0G.4!%B21O<@U8JW$UBC3^EC8!!]IASKNCD,P*375M*FI50#3D)QRWC*T%
M+O1=@N3(3L$#99VJFV:8[5,PH['\)8$ZM0$W<U*Z#5Y<J*?VZ$&5IFO2M=@N
M$--1$D06>&JQSC)]Q#!DM9],M97()HC:A7^FN[&@,J>8  )*I>TAY3D7XQP&
MV\XE$=M^.EUPCAUO.#LGX:DU_*<S#F\V"P^'*E#O22MS,#M.=6I0]Y[L%KJ4
MH/"/= C]B!8)T<-U!HDN0Y^]AMB3$.[Z3 5')(?M\\RX1.\*RQEC$5.Y'9AX
M-XT,4?63+\+34@1*BZ[$$VXC/!4W!*F(56,VTUK*.OB2,D=" IQZ$S/:RJ U
M2?"Q;RGZ=*0)S$!,\K<$\5*^16/CVN7JURH=;@PT-:'5[?&#//X8_1&;ON.A
M>K=> [URRD$#!!![8*YQW<TUK@^.']+@)*#=*0S:>!"?FF$\FLBPP^!DVY0A
MZX]1T#WZ&M<B0^DM>SA!TD"FE:D9%0<:UZ4@I$)#WCMLH C7=L"^B])3U4G#
M-B8+N#:&"(^BO$E]6=_!FAW^W%#U"4 \;8W<KLK6G(XW%2C[V[#BXCOP%,T-
M8\S]$D=NU@IYT=I1;F2A)RNX+VGK:1J2"O5TR!.B)4C=(_HA,]D-5( &\I/X
MKX0,J7"@6RX6IEE2SP_%VEK:MX'471<T4&2J2<E87>.5A<S5&1J$ACG#.6AK
MF027SB3K\E@M#3HX:*0KB:0,VY0@[[>C^BA:ZFIQ7WN1A]N$&;F\CDI>]K:=
M]N!V1UDI,4,/B\Z,W!+VUDWY5*"@]' R^T@6R$[3-EG;&3(D3PL#1(F:)VK&
M,E@"P7]/8N)V+A$DR:Y)AYVEQA5J78#N4I;8=9T'0'$7&=Y!1VS09(0T6BBQ
M&VIJ-<^2$K'P.,!X($$][Q+4\X.YY9^H$!\\O (*-7MGK(^E,9R0WY%':XJZ
MCVO:CGIZ<_?Q2%V>7_SYY.+R& I"(:[L8IL!Z& M1=5[P=0_4$J>*:S-2R5A
M&_9V KH4]=U\+?E1*)Q@O1^ J OUU=7Y\8A@ZJ$@=-GU^^R1Q"<DP:0ZC*5*
M2)\+!357WM3N/N]@X<B?Z8J&@6LVUM?JXJB_S!'*0((X$RQ>K[W3Q2K1AVOD
M**!Q'"BF(1-G)9Z-\-A(D"@WPZG-8OS:9S&)=1;747=.@2?O2[BBQM;AI;J<
M$"_AP3J!S0XC\1 "B(.3.*2K;$Y()'NJNVEF-9RF;*3UI:QBE]+[V=+2"<O<
MD("<ZO<M?ZF>38B8&3.N_6(1)V78D6Z?'+VL@\4O6<U7$P+FW"MT7.66(D(>
M+)*U1MYDN1XSRK)USH1)-IHHGT1WPH&41@<T;I:V .V&+>R:<X9XA1/(2<L.
MNKJN@GN4OY?N@;.SAXO'R#."!XV$Y79DF(5'K@=KIB<OVL"#1I1M9&>IGM)<
MIFF>SA<G\C"/J).88E3 AE% R; #MWB>)OF<S@9V*;'S[Y4\(2.3;1"B6:.T
MYU)%DG2SD:5S)3=38>7:JA0@W>$=VF%71VC(0?,6B#('SDK--)C80H98=%C;
M$]P0C$UG!M5VU#<V98=4)ME"9 /6M 4DE29HQB@<3C+(WD[LV@8.J6%'F'*0
M26."08%*FJ99008H?-XTB+^,M(@.\-!25YE3MC^Q0T#]A*+.L8-%5B::G?@]
M( VY)(8N\@ZXWJ)BHM2L\O$-SU'IN999"@^-V*"4*?2&NP_/9VC)RKII6A*Y
M._VA-UDFZBK:V-DOM^>#V)4-9DP@+;,P)NT=CDMO!CP9WK; >86,4!NJ=N+Y
M+%TW0).4/Q1B4!5=, \6S T<BX_;I$_]!IBHGN/'Q;4<(I^J;[6'W^G227:C
M@"5(!AA5OE0KMR&<=#S0.N^:OR_@"FWZY6FZV&VX;@G.\Q.=9@Z[ZD EQZTD
M[T&->2.'-3S!.. VY (#-^Q.\4CC$Y[8!Y:@#DY/A ZC=Q1$;!]) VR0JE-N
MGF&:AW(/9!W,+='NID,:FF7]2C%B3WU0RV@W>R2N72GGI%.B=ZTYXKCFXG1O
M3E+(Z/*G-A5 KK-1,QR'7<EO K?9*;5USI1N+&R@N9\<#B\Z'SJDCU&)&-IF
M?Y68W+"QZ4SB4982H/1_I:H;R"EX;:"P/39>[TH[.@$KG0GII)I>&D%JB,M3
M&TW'TM *1*$Q&67,W)=P2_DDC O 9(1Q#<!^ $70,(;3+^H*+L]/SJ_0%=R:
M--%2M_3XEF:/M7HJ./[%U8NCV<&\"75L'S0&_52*D#)]NT*#:5,N22)V/@+,
MB+R40M,Q75\S$PG?R?:/]V^_OV5O:?+8-S_BS+,S5.,S:3D*Z0]SW6)W%9]Z
MU@?3'$Q\C_*NQ#THBX%3:3N]]XV'>#GI@W:9T"BEXH+>,.40Z:U1/@$@J1-^
M^M>;FP]'G)I^JZXT1X,</DWND$;<]$T--20%S?K@<!SD2'.R^_V[2@H8G&QU
M>DH?8G0^D#>0 KI(?5&M2YD<3.Z*O,;(&15(4%>38&"Y6R*?77")1"LKXK'"
M]]"D<SZNLIP!)DCL0!<:#9DTA\V:FC*Y@("R3Y-=TLEY2F!'F?/,E'R/1"*C
MT)(-?:<]P"MU]13('>\'^_R"?,1YX'^;CZ;&)V>#CP5KXY?\22011X3(=X/=
MW>ZKRQOYV+!_73[9A#*6]&E+9198>G[ZU?5,>?D,4BZB6_.GAW,7HZOYY\K
M*3V]@.<+YV*^( ;=MZAO_@M02P,$%     @ 98']4%@S+Z-4!   Y0D  !D
M  !X;"]W;W)K<VAE971S+W-H965T,C@N>&ULE5;;<MLV$/V5'=;3Q#.L1%&6
M;*N29GQ)TG3BJ6L[[D.G#R"YE# F 08 +2M?WUU0IFB/K+0O$BY[.6>Y!\!T
MI<V#72(Z>"H+96?!TKEJTN_;=(FEL#U=H:*=7)M2.)J:1=]6!D7FG<JB'T?1
MN%\*J8+YU*]=F_E4UZZ0"J\-V+HLA5F?8Z%7LV 0/"_<R,72\4)_/JW$ F_1
M?:VN#<WZ;91,EJBLU H,YK/@;# Y'[&]-[B7N+*=,3"31.L'GGS.9D'$@+#
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
MK:I\<R6SA=1N HXOE;+=AU/0OXS=_@]02P,$%     @ 98']4%=PVA-X @
M(@4  !D   !X;"]W;W)K<VAE971S+W-H965T,S N>&ULA51M3]LP$/XKIV@?
M0,K(6].6JJU$86A,0D*PC0_3/KC));%P[,QV"/S[G9,V*Q)T7^*[\SW/O>3.
MRT[I)U,A6GBIA30KK[*V602!R2JLF3E3#4JZ*92NF255EX%I-+*\!]4BB,-P
M&M2,2V^][&UW>KU4K15<XIT&T]8UTZ\;%*I;>9&W-]SSLK+.$*R7#2OQ >V/
MYDZ3%HPL.:]1&JXD:"Q6WD6TV$R<?^_PDV-G#F1PE6R5>G+*3;[R0I<0"LRL
M8V!T/.,E"N&(*(T_.TYO#.F A_*>_;JOG6K9,H.72CSRW%8K;^Y!C@5KA;U7
MW5?<U9,ZODP)TW^A&WR3V(.L-5;5.S!E4',YG.QEUX<#P#S\ !#O '&?]Q"H
MS_**6;9>:M6!=M[$YH2^U!Y-R7'I?LJ#U73+"6?7-_(9I56:HX&3[VPKT)PN
M TO,[C[(=BR;@27^@&4*MTK:RL 7F6/^%A]01F-:\3ZM37R4\%LKSR">^Q"'
M<7B$+QG+3'J^Y#]EOL(5-YE0IM4(ORZVQFJ:B]]'(DS&"),^PN2#" ^T+GDK
M$%0!!TU]KY='B=P6+DS#,EQYM&8&]3-Z;WY3IF@EC,7<A;(50J$$[1:7)9QP
M21;5&B9S<[H :B..;80KS+#>HH8D<I;H'.Y91\-D47,F#'PBHS]+IDZ8^?$\
MA4?:J,]<?FZTRM 8F/A1%$'JIV$"UUQRFKL<2J5RXZ)$X=0!)[.$&-+8/T^=
M, W]>!K!>RT.#N:V1EWVV^D*;*4=1GBTC@_ Q3#W_]R'U^.6Z9)+ P(+@H9G
ML]0#/6SDH%C5]%NP599VJA<K>L10.P>Z+Y2R>\4%&)_%]5]02P,$%     @
M98']4,+0H2*& @  -P4  !D   !X;"]W;W)K<VAE971S+W-H965T,S$N>&UL
M?93-;MLP#(!?A3!V6 &C_DV:!$F I%VQ#2U6M-V&8=A!L>E8J"QYDMRT;S]*
M3KP,6'.Q28G\2$HBYSNEGTR-:.&E$=(L@MK:=A9%IJBQ8>9<M2AIIU*Z8994
MO8U,JY&5WJD141K'XZAA7 ;+N5^[T\NYZJS@$N\TF*YIF'Y=HU"[19 $AX5[
MOJVM6XB6\Y9M\0'MU_9.DQ8-E)(W* U7$C16BV"5S-:YL_<&WSCNS)$,KI*-
M4D].^50N@M@EA (+ZPB,?L]XB4(X$*7Q>\\,AI#.\5@^T*]][53+AAF\5.([
M+VV]""8!E%BQ3MA[M?N(^WI&CE<H8?P7=KUM/@J@Z(Q5S=Z9,FBX[/_L97\.
M1PZ3^ V'=.^0^KS[0#[+*V;9<J[5#K2S)IH3?*G>FY+CTEW*@]6TR\G/+F^0
M2C+P_I%M!)JS>60)ZK:B8@]8]X#T#< 8;I6TM8$/LL3R7_^(DADR2@\9K=.3
MP,^=/(=T$D(:I_$)7C94F'E>=KK"GZN-L9H>P:\3S'Q@YIZ9O\DT!C&$+RUJ
M9KG<@H\2P@UG&RZX?0WAEME.D_2_(SU)=WTX,RTK<!%0HQG4SQ@LKSO"(:@A
MHG 1H6"FAI:]4I]8 XPLF(%*"6HVNE4NP=:J,TR6YFP&/Y#I_I[@"@ML-J@A
M2T)8-:J3%N[1=7%)BZJ"BIN""7\)\ [R,,M&3DE@$F9Y[,04QF$RGCHQ(X/I
M1>;$'-(PFR9.'$$29F3V6"/-B\H2. _S<4H\BCJ=IO"_JXB.'G.#>NM;UD#A
M4NS?]; Z3(55WPQ_S?N1<LOTEDM#1U61:WQ^04VH^S;M%:M:WQH;9:G1O%C3
M9$/M#&B_4LH>%!=@F)7+/U!+ P04    " !E@?U0BHO3\W4"   S!0  &0
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
M*C->O&/#Z<UPV2VU(W$,9D/?*FC\!!I?:>WV#9_@\/4S_Q=02P,$%     @
M98']4,>C56V) @  <04  !D   !X;"]W;W)K<VAE971S+W-H965T,S0N>&UL
M?53!;MLP#/T5PMAA!8(Z<=*E"1(#3;MB&U L:+OU,.P@V[0M5)8\2:[;OQ\E
M.VXV)+G8HD2^]TB)7+5*/YL2T<)K):19!Z6U]3(,35IBQ<RYJE'22:YTQ2R9
MN@A-K9%E/J@2830>?PHKQF40K_S>5L<KU5C!)6XUF*:JF'[;H%#M.I@$NXU[
M7I36;83QJF8%/J#]46\U6>& DO$*I>%*@L9\'5Q-EIN9\_<./SFV9F\-+I-$
MJ6=G?,W6P=@)0H&I=0B,?B]XC4(X()+QI\<,!DH7N+_>H=_ZW"F7A!F\5N*)
M9[9<!Y<!9)BS1MA[U7[!/I\+AY<J8?P7VLYW%@60-L:JJ@\F!167W9^]]G78
M"[@<'PF(^H#(Z^Z(O,H;9EF\TJH%[;P)S2U\JCZ:Q''I+N7!:CKE%&?C)Z8U
MD_8-OB>"%\Q5RL#'1Y8(-&>KT!*%<PS3'F[3P45'X#[!G9*V-/!99IC]&Q^2
MM$%?M-.WB4X"?FOD.427(XC&T?@$WG3(=^KQID?PMEIE36JASYNC@1MN4J%,
MHVG]ZRHQ5M-3^7V":S9PS3S7[ C7=<ED0:!<PJ$R'ZKN24#7H$M3LQ37 76@
M0?V"0?Q8(J3O3);,=L>F!C9H42,P [D2U(ATQ]Y7-8;)S)PM8<,$DZEW43G<
M8(I5@AJF$U?ZR0(^P&PTGTR!"OC"C7\F-!)V5*Z.W)@&,\@:S67A==2HN<I@
M,IHMIG#;B)P+00UM'<,!C21J$<W/_I-"+P"'%T R+D;1? &'KB?<:X,*=>&;
MW4"J&FF[CAAVAWERU;71NWLWC.Z8+C@)$IA3Z/A\?A& [AJ\,ZRJ?5,ERE*+
M^F5),Q&U<Z#S7"F[,QS!,&7COU!+ P04    " !E@?U0C%KC!&T%  "%#@
M&0   'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6R=5WMOVS80_RH';Q@20*LE
M69+E+#&01Y]K.Z/N \.P/VB)MHE*I$=2<;)/OSM*EN7.4=("AFV2][[?'8_G
M6Z6_FC7G%N[*0IJ+P=K:S=EP:+(U+YEYIC9<XLE2Z9)97.K5T&PT9[EC*HMA
MZ/O)L&1"#J;G;F^FI^>JLH60?*;!5&7)]/T5+]3V8A ,=AL?Q&IM:6,X/=^P
M%9]S^VDST[@:ME)R47)IA)*@^?)B<!F<78V)WA%\%GQK.O^!/%DH]946K_.+
M@4\&\8)GEB0P_+GEU[PH2!":\4\C<]"J),;N_YWT%\YW]&7!#+]6Q1>1V_7%
M(!U SI>L*NP'M7W%&W]BDI>IPKAOV#:T_@"RREA5-LQH02ED_<ONFC@\A2%L
M&$)G=ZW(67G#+)N>:[4%3=0HC?XX5QTW&B<D)65N-9X*Y+/3&Z[%+:/(P&MI
MK*XPX-; R4>V*+@Y/1]:5$*DPZP1>%4+#!\0F, [)>W:P'.9\_R0?XC&M1:&
M.PNOPEZ!;RKY#,+4@] /_1YYH];CD9,W^CZ/F<SA%<]70J[@DJ BK. &;H3)
M"F4JS>&ORP62(XS^[K$B:JV(G!71 U;\45EC42>I0WAMF<[A&@-'\@VXZ!^+
M?:]0*N SLV$9OQA@A1JN;_E@^G'-47*Y8?(>UBP'B^NE*K :2;?JV+%L[,A:
M.TZ$1'I5&:0PIV> N>!M+N"&9[Q<< VC@':""5Q76G.9W<-[137'"O@TOSE<
M[,-OZ #71JPDLSP'9MH,=#)S!K\K;#<2OF 1!Z/42R:^Y_L^_ Q!$'N)'T&0
M!-XD#KRXWAU-O"1-X7FE%<0U;9QXP6@,0>I6H>^%T03>\3N1H> 9-PJ/(F^,
M9T@1!Y#6;)$7AB-XPS!X&$[XDTM(_$:B%Z=CB,=QLPHG ;RJY(II@2(QI4):
M"#P_K0E&7A2-(!W7S*$W24*XTH@QLX:9JA!\Z$)$)Y&?X/?8\<3)!+$@MK7Z
M&\P:TQ#A:1(C?13',!KCCX^+,$[@FDF6D_J&,D"GT:,0'?=&/E&1\CD&F&TP
MIGLR?^+#.(T@C6)(PA1Z !ZW (][ 3['ZR.O"@YJ"0^4'()K;C'SM"*R%T(R
MF0D$RDP909CQX 43&CZSHCI:#KTF'"^'U[*^R>I+!=/EH.^*@E3=DBHRAG;Z
MBV.+>,5/74O_KY5+8[@]@/M;P1:B$/;^8/>*%>@U[WAZ;&ON;NC'ZN]I5#]0
M@L_1;56*##"I*WXD&#/--TSDP.]P7#"\[J<*@ZCQ%J.F8%$V!L1@@48)?J7Q
M&/MLIBO>8<*S.,5O++H>""8M!)/^'KM<HD;K.KK3?0Q"O2(>[JC[#FJI5X,[
M)5 3;E9:&5,/')1MC!:PHL!AH2V#)A84I*)!!=TVV[7(UK#ENA6(T:'9!23F
M%:</86AI74N71A4B=VG; <;EWT".@+'*D6F:2@C/R@4#IPN[!LY02X9=QW*]
M81I-_%'P/@:UQ\Y?UI$JR19#9FJ>J944_SHL?HN7/NIN&#LP^I;%!>&7G](P
M"']K?Y]$]![W:A+2W!BWSU+'S$/*KF$'Y$] ^KA%^K@7Z<<;K <O<2J'D[?H
MW=%)KE?H][9/OESBI$T>=W N.NV^ 6[6!>ZR;?EF=Q,\VEC?JJS6C_O[*V.^
MY_^XUIS_6G;&4+SS[@XW#H'I5B/_*&@/SWZ@=U(2T N<(K'%G78QBP[LFB.^
MLK3SRM#L@&^)W1$.4RN71>(_1<0D-..<1*,)+4Y2+TA]MYT<!=*P\S0HN5ZY
M!Y"IB[]^);2[[1OKLGY:[,GK!]H[IE?D2<&7R.H_&^/MJ^M'3[VP:N,>&@ME
M\=GB_J[QG<@U$>#Y4BF[6Y""]N4Y_0]02P,$%     @ 98']4 2P^-Z*!
M>0P  !D   !X;"]W;W)K<VAE971S+W-H965T,S8N>&ULO5=9;]M&$/XK R%
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
MO!=SNE%1.P/:SY2RK>("='?TXC=02P,$%     @ 98']4-P9K#VT @  !08
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
M2I4.ZTK!& ]:A'(,0'X&_)4+;2AU*WEBLC&32UT4B3"X*1('!4QF#SY/3>+
M$Q-LF<2=?&5KE@+X'OQ;2]I.=U*^4Y>^^11SB$"DJ_H.#<C_L']);E2ZBEJ3
MH]T8'%*0'RD30SL^,ZIF&GS3"R;!MWO%Y)K>IPQ\SE:YTQD=06<'&-3OJK-C
M"_(G#"_2>=#0N>6Q@AR/D)]'?R0B$TN>@ 6;SIF]ES=43H&YJJ4I^/;'T202
MB?<'@AV.<.@5M5;Q>'-[QR+L3S%>,[/2Y<[,HA: 8$<R["?9E?E+<^^99;7_
MKOB4F2S:5M2IF_/>:)H\:UEO7"MY_#![@SUE1AU>&F!',]R59MC1#/MI]O)G
M"6XRS5<?8 <U_+]#S8PZN.[ CG*X*^6PHQSV4^X5^C=9YZL\L ,>]@/O;?1_
M>3U#'!F)GXS/+P1Q4"1^*+ZBE]!$HJ>>(0Z*Q _%MUF'PZLDXI!)<%?]:ZV<
MH_=RFLT<3Y5$'!*)'XEOM \.J[V(PR7IVB(BCFCDV$TBLJ=+U%Y[$<=#XN?A
MVXA_>$5''"Y)U_Y3Y$ 6';O_%#7[3^T57>0H&#U#P9J<6[5/P59MW+F,B!P!
M(W^?ZL",-W*@BORYW6OSS*C9M@Y_:VSO&0)A]'MC.ZB]%;&OI$R%/#<U#4C9
MS)B%9WVSD'+[EF=[HL6J>%%R+[06R^)PP:B)VPXPO\^$*;W+$_ONI7K7-OX/
M4$L#!!0    ( &6!_5#D7U<4N00  $P5   9    >&PO=V]R:W-H965T<R]S
M:&5E=#0R+GAM;,U8VV[C-A#]%<+H0Q;(QJ)D^1(X!N)+VA1)-TBZZ<.B#[1,
MV^Q*HDM2=@+TXSND9,F*9%KM;HN\V!(UMS,S.D-QN./BJUQ3JM!+%,;RJK56
M:G/9;LM@32,B+_B&QO!DR45$%-R*55MN!"4+HQ2%;==QNNV(L+@U&IJU!S$:
M\D2%+*8/ LDDBHAX'=.0[ZY:N+5?>&2KM=(+[=%P0U;TB:K/FP<!=^W<RH)%
M-):,QTC0Y57K&E_>N+Y6,!+/C.[DP3724.:<?]4WMXNKEJ,CHB$-E#9!X&]+
M)S0,M26(X\_,:"OWJ14/K_?6;PQX #,GDDYX^!M;J/55J]]""[HD2:@>^>XG
MF@$R 08\E.87[3)9IX6"1"H>9<H00<3B])^\9(DX4  []0ININ"^5>@<4? R
M!:^IATZFT&GJP<\4_*8*W4RA:W*?)LMD>DH4&0T%WR&AI<&:OC#E,MJ08!;K
MSGI2 IXRT%.C&\($>B9A0M$])3(1%-I&270VI8JP4'Y ']'GIRDZ^^'#L*W
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
M4JLA2,L)^%RNF-*%O0!.P;4H%J*L3L04'.KWX8;IE.?JHXGPX_X&?#CY"$X
M+\'WN5@J8ZW.1]J,PZ(995O,5QO,J /SEV5Y!E \!"A @<?]NM_]AF5G $/K
M#I/7[B/#7DTAJBE$53S<&>]!@WN6+277G!D.+E=FQ.E#SDY-F9TJ0PWXYZMQ
M I\U*]2_/8_$]2-Q]4C2,VL^WC9>M/*R!;P:(QQ&B1GE:I>?MAD,0Y+$M=DK
M4*0&17I!W9KL>#:Y*1]-]^&ETG)9Y8 /Z"92N(,@#!!"#9QM*Q@F&/MAAC7,
M<"]W59IF]H"YY/7A#%L(4$P#!!M VV8P@@1#/U):(Z7]2)=2&F"&R[J>3($5
M0FK^'S/XA=*V%$\@@<,X(M6@3LR$#RD,;(G9\J@NVD0?FJ:K%JSJFOFSB9.;
M#IZ6&0,F20%[LK=L4,DF7(-<*,6J0C]IA_(11=L,$!S$I$%4VPR1@$2!GZBH
M)BKJ)>I/49YF!Y)%*!PF)-Z09:9H2#%^.[*B<!-X'_\^"J,6-X1&01PU*/28
M84Q"Y*<PKBF,>RG\+G2:^U#%K<?%"85)LU0]9B3$84>M)C6JI!^569FHI7P&
M5SS/54_CA('3N^!8W1KNB"S\92IY.Y3=J<0D@'%CPCUF"4H@\4\X=&(*42]5
M7T4Y.]5,%KMD>7&B=LM)*(V:+<=CAZ I^BZD3H/A'A$6<B%DJAFX$JUUS.N8
M3D(A.5IV.D&$>Q3Q/65G6VH)0J25G6TS&E+4->=.D6&_)!^>G1Y!3 B!S;[I
MLR.41%U(G23"?DV\-,3JTZLT>S1LNXSJ2QBG%3 ^6I8Z*8#]6O"NLC3QK&\Q
M;"X;/6:4TKAC-82<QJ'@;;)T&^=5-4'4VB_XS"@).L0=.5E$>V21F<F;\LSV
M4$/NA"V$XKIO2[:S)SO:I@PY14![%.$=I>AV*+MS&C2GO6U",.K8)2*G<:A_
MGW@O5DPR/BOWZB9R$H;"HTVW$P/T1F* /$T>T99H^<QH$(0=A#LI0'ND8,;*
M['D_VZ[_HZ/U?^3Z/^KO_X>SW>ZJ" 5A<UWH,0L[UZ_8]5[<WWMOER7/^"+-
M]_*-79_$\&AOF%P'Q?T+\??4S+!G+T!QL[X\5H3B#K7%.^_B^KO^P8F)][=<
MCPG"J&-OCUW+Q8>VW(=]2>E:+CY:R\6NY>)?YY78=BBO7K.2F+9>QK;-*$J:
M?6BT\XK??E^Y3>6,EPKD;&K<@K/(3);<?++8G&BQJ-[Z/PBM15$=SEDZ8=(:
MF/M3(?3+B?V04'\X&O\/4$L#!!0    ( &6!_5#I3QT 5@8  #\I   9
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
M5'Q/R);O?0;%5.XI?2PVKN87K: @(BF9B2)%+/]MR)BD:9%)<ORHDK;J,8O
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
M9IML*+>WN-+2G%+#T\DCWP'70E)0Z!JMS"/)*@9(;%#_Y'(!FE"FK@SF>;5
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
M5FLUT["IVFAMCC#S51Z4T+-$QZGB&^B4)/J$;CK5"4"WA)&F:Y =1PO\IK^
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
M'9XU:0VF]*-H6:9;A5V_#KO#M"^[)O_KWCT5C]Q0_2R34%!H-+DA4:8;O\Y
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
M!5[%( T UW,A]-/$=/ON<D]^ U!+ P04    " !E@?U05;"C1;4"  !D!P
M&0   'AL+W=O<FMS:&5E=',O<VAE970V,"YX;6RE5=]/VS 0_E=.T1Z*!"1-
M2E=06XG^V&"""<'8'J8]F.2:6"1V9SLM3/OC=W;2K+!0L>TEL<_W?=_=Y7(>
MKJ6ZUQFB@8<B%WKD9<8L3WQ?QQD63!_*)0HZ64A5,$-;E?IZJ9 E#E3D?A@$
M?;]@7'CCH;-=J?%0EB;G J\4Z+(HF'J<8"[7(Z_K;0S7/,V,-?CCX9*E>(/F
M=GFE:.<W+ DO4&@N!2A<C+S3[LG\R/H[A\\<UWIK#3:3.RGO[>8\&7F!#0AS
MC(UE8/1:X13SW!)1&-]K3J^1M,#M]8;]G<N=<KEC&J<R_\(3DXV\@0<)+EB9
MFVNY/L,Z'Q=@+'/MGK"N?0,/XE(;6=1@BJ#@HGJSA[H.6P#B:0>$-2!\#NB]
M (AJ0/1:A5X-Z+U6X:@&N-3]*G=7N!DS;#Q4<@W*>A.;7;CJ.S35BPO;)S=&
MT2DGG!G/4/$5LQ\+SH4VJJ0>,!H.H/U@']Y3[T'G0FJ]!YT9&L9S6AW [<T,
M.F_VX W0^:=,EIJ)1 ]]0T%:*3^N YI4 84O!!3!I10FTS 7"28M^-EN?'\'
MWJ?B-!4*-Q6:A#L)/Y3B$,+!/H1!&+3$,WT%/ HLO'O<EL[_J<__6?U),:*F
M72+'UWN![Z,TU!F:IX(93(!I.,,DY2+=:A+X"?0/TQ\J8%HJA2)^W.Z:'5'T
MFBAZ+HKHKYKV:6]^O2 0G!LL]+<=DD>-Y-'.Q"VUADY.W$CL"F.9"OZ#:D"2
ML4O3 $UOQ>S\:^W[2J#O!.SX7HW[]$57VZWTI\M!+SI^ZC1K<1IT!\^HYBUJ
M_<:E*H&_-38*5*F;UQIB60I3M41C;:Z$4S<)G]DGW9-IM\4^HRNDFOB_Z:O[
MYY*IU!8TQP5)!8=O*5Q5S?1J8^32#:T[:6@$NF5&UR JZT#G"RG-9F,%FHMU
M_ M02P,$%     @ 98']4(@Q18"! P  +@T  !D   !X;"]W;W)K<VAE971S
M+W-H965T-C$N>&ULM5=1;]LV$/XKA-"'%M@BD91H*; -)+;7M5C1(&FWAV$/
MC$U+1"71(ZFX^?<C*5F6944(/.3%%JGON^/=1QV/T[V0/U3&F 8_B[Q4,R_3
M>G?M^VJ=L8*J*[%CI7FS%;*@V@QEZJN=9'3C2$7NHR @?D%YZ<VG;NY.SJ>B
MTCDOV9T$JBH**I]O62[V,P]ZAXE[GF;:3OCSZ8ZF[('I[[L[:49^:V7#"U8J
M+DH@V7;FW<#K%226X!!_<K97G6=@0WD4XH<=?-K,O,"NB.5LK:T):OZ>V(+E
MN;5DUO%O8]1K?5IB]_E@_3<7O GFD2JV$/E??*.SF1=[8,.VM,KUO=C_SIJ
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
MLG1%^6%.GRFH70"]7RMEGR9.H/GPF?X"4$L#!!0    ( &6!_5"A^3?VL0(
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
M2HG$W*XY@S%,$\#_2R'4RX-64)X67OP/4$L#!!0    ( &6!_5#L;A/B;@0
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
MI;QF#T^6*!JL8J+XRG00<ZZP'S'#!'M2$'H#/E]PKO83+5!UN<,_4$L#!!0
M   ( &6!_5"EA7H9D@,  "4-   9    >&PO=V]R:W-H965T<R]S:&5E=#8Y
M+GAM;*U776^C.!3]*Q;:AZFT#1A"2$9)I(;,[(<TJZI1.\\NW 2K8&=MDW3^
M_=J&$J8!DMF9/C0&[CGWW ]?S/S(Q8O, !1Z+7(F%TZFU/ZCZ\HD@X+($=\#
MTT^V7!1$Z4NQ<^5> $DMJ,A=W_,F;D$H<Y9S>^]>+.>\5#EE<"^0+(N"B&\K
MR/EQX6#G[<8#W67*W'"7\SW9P0;4X_Y>Z"NW84EI 4Q2SI" [<*YPQ_7.#(
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
M0^L#>']A#+U-?-?U;V;^#U!+ P04    " !E@?U0_A]'N(8#   +#@  &0
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
MAI1VY=S),XE1G)M%C#K#P<!S&"(<ACXOV!U3.8A$P54 O28$[/ Q#J#KO87
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
MEEU5^6__9?/9R'+[LY3M3VK>_0=02P,$%     @ 98']4+M)TM]B @  M"X
M !H   !X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<\W:2VZC0!2%X:U8+""X
M[JN<5IQ13S)M90/(*3\4VR"@U<GNVW(&]D$]Z$G$&:$"<?E'GU#!TZ]R;,9#
M>Q[VAVY8?)R.YV%=[<>Q^U'7PV9?3LWPT';E?+FR;?M3,UZ6_:[NFLU[LRNU
M+)=1]_<SJN>G^YF+U\^N_,_$=KL];,K/=O/[5,[C/P;7?]K^?=B7,E:+UZ;?
ME7%=U1_'V^FAOA[2PV5RM7AY6U?]RUNJZKF#!()D_B"%()T_R"#(Y@]R"/+Y
M@P*"8OZ@#$%Y_J 5!*WF#WJ$H,?Y@](295P2)$VP)M Z(=>)P.N$8"<"L1.2
MG0C,3HAV(E [(=N)P.V$<"<"N1/2G0CL3HAW(M!;4&\AT%M0;R'06R8OVP1Z
M"^HM!'H+ZBT$>@OJ+01Z"^HM!'H+ZBT$>@OJ+01Z"^HM!'HKZJT$>BOJK01Z
M*^JM!'KK9+.$0&]%O95 ;T6]E4!O1;V50&]%O95 ;T6]E4!O1;V50&]#O8U
M;T.]C4!O0[V-0&]#O8U ;YML=A/H;:BW$>AMJ+<1Z&VHMQ'H;:BW$>AMJ+<1
MZ.VHMQ/H[:BW$^CMJ+<3Z.VHMQ/H[:BW$^CMDX^5!'H[ZNT$>COJ[01Z.^KM
M!'H[ZNT$>@?J'01Z!^H=!'H'ZAT$>@?J'01Z!^H=!'H'ZAT$>L?D9Q,"O0/U
M#@*] _4. KT#]0X"O3/JG0GTSJAW)M [H]Z90.^,>F<"O3/JG0GTSJAW)M [
MH]Z90.\\^5F00.^,>F<"O3/JG;]3[V'\/);AUO.UAN>OOI/J\7)ON3W^NOPZ
MB3BOKCC7]Q7#\U]02P,$%     @ 98']4-TG:PL8 @  A2T  !,   !;0V]N
M=&5N=%]4>7!E<UTN>&ULS=K?3MLP% ;P5ZERBQK7_S=$N0%N-R[V EYRVD9-
M8LLVK+S]G!20-K$*5*1]-XU:V^<[\9%^5[WZ\10H+0Y#/Z9UM<LY7#*6FAT-
M+M4^T%A6-CX.+I>O<<N":_9N2TRL5H8U?LPTYF6>:E375[>T<0]]7MP=RL^I
M\^.ZBM2G:G%SW#AEK2L70M\U+I=U]CBV?Z4LGQ/J<G+>DW9=2!=E0\7>3)A6
M_AWP?.[[(\78M;2X=S%_<T/9Q0X]2_FIIU2?+O%&CWZSZ1IJ??,PE"-U"I%<
MFW9$>>CK8]&+T\FYW# =/_G9^7.94X%EYWWT(96)1?IXW,M(IM/+4 I1S-WI
M5WQ-+*7/?C^:IMU2^\[L<KV_?-S/\TAL?IQ_QW_.^+7^!_L0('U(D#X42!\:
MI \#TH<%Z>,+2!]?0?K@*Y1&4$3E**1R%%,Y"JH<156.PBI'<96CP,I19!4H
ML@H4606*K )%5H$BJT"15:#(*E!D%2BR"A19)8JL$D56B2*K1)%5HL@J4625
M*+)*%%DEBJP215:%(JM"D56AR*I09%4HLBH4616*K I%5H4BJT*15:/(JE%D
MU2BR:A19-8JL&D56C2*K1I%5H\BJ460U*+(:%%D-BJP&15:#(JM!D=6@R&I0
M9#4HLAH462V*K!9%5HLBJT61U:+(:E%DM2BR6A19+8JL]G_*^M/[_2?'S\]Z
M<-WXDL_F?U]?_P902P$"% ,4    " !E@?U0!T%-8H$   "Q    $
M        @ $     9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0    ( &6!_5#H
M+44"[P   "L"   1              "  :\   !D;V-0<F]P<R]C;W)E+GAM
M;%!+ 0(4 Q0    ( &6!_5"97)PC$ 8  )PG   3              "  <T!
M  !X;"]T:&5M92]T:&5M93$N>&UL4$L! A0#%     @ 98']4"TX%S$5!0
MXQ0  !@              ("!#@@  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM
M;%!+ 0(4 Q0    ( &6!_5#P2<:P( 8  #@9   8              " @5D-
M  !X;"]W;W)K<VAE971S+W-H965T,BYX;6Q02P$"% ,4    " !E@?U0KM$0
M(UX$   5#P  &               @(&O$P  >&PO=V]R:W-H965T<R]S:&5E
M=#,N>&UL4$L! A0#%     @ 98']4$"O)HW] @  U0@  !@
M ("!0Q@  'AL+W=O<FMS:&5E=',O<VAE970T+GAM;%!+ 0(4 Q0    ( &6!
M_5#.%W6P(@<  !D=   8              " @78;  !X;"]W;W)K<VAE971S
M+W-H965T-2YX;6Q02P$"% ,4    " !E@?U0[+/%IY4"  "9!@  &
M        @('.(@  >&PO=V]R:W-H965T<R]S:&5E=#8N>&UL4$L! A0#%
M  @ 98']4*1O%ODT!P  8!X  !@              ("!F24  'AL+W=O<FMS
M:&5E=',O<VAE970W+GAM;%!+ 0(4 Q0    ( &6!_5"6Y''M,0D  (DU   8
M              " @0,M  !X;"]W;W)K<VAE971S+W-H965T."YX;6Q02P$"
M% ,4    " !E@?U0=.N&$*L"  #K!@  &               @(%J-@  >&PO
M=V]R:W-H965T<R]S:&5E=#DN>&UL4$L! A0#%     @ 98']4(K2D:+]"@
M'1\  !D              ("!2SD  'AL+W=O<FMS:&5E=',O<VAE970Q,"YX
M;6Q02P$"% ,4    " !E@?U01N%3T6X'   L%0  &0              @(%_
M1   >&PO=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0    ( &6!_5"Q
MJ0O$2 D  +(8   9              " @21,  !X;"]W;W)K<VAE971S+W-H
M965T,3(N>&UL4$L! A0#%     @ 98']4+SB"QO<"0  S!L  !D
M     ("!HU4  'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6Q02P$"% ,4
M" !E@?U0YT<0:CL#  #+!@  &0              @(&V7P  >&PO=V]R:W-H
M965T<R]S:&5E=#$T+GAM;%!+ 0(4 Q0    ( &6!_5 NC3]" 08  /D0   9
M              " @2AC  !X;"]W;W)K<VAE971S+W-H965T,34N>&UL4$L!
M A0#%     @ 98']4"I0TY.^ P  %0@  !D              ("!8&D  'AL
M+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4    " !E@?U088;W]%,'
M  "J$@  &0              @(%5;0  >&PO=V]R:W-H965T<R]S:&5E=#$W
M+GAM;%!+ 0(4 Q0    ( &6!_5#6YYRV/00   T)   9              "
M@=]T  !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL4$L! A0#%     @ 98']
M4*/E"M<H!@  G@\  !D              ("!4WD  'AL+W=O<FMS:&5E=',O
M<VAE970Q.2YX;6Q02P$"% ,4    " !E@?U0Y^+ ;#T'  !C$@  &0
M        @(&R?P  >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM;%!+ 0(4 Q0
M   ( &6!_5!-L$F#0@D  /0;   9              " @2:'  !X;"]W;W)K
M<VAE971S+W-H965T,C$N>&UL4$L! A0#%     @ 98']4,&[G[B_ P  PP@
M !D              ("!GY   'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6Q0
M2P$"% ,4    " !E@?U0T^(B3]H&   &$P  &0              @(&5E
M>&PO=V]R:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4 Q0    ( &6!_5#">M[E
MN ,  +L)   9              " @::;  !X;"]W;W)K<VAE971S+W-H965T
M,C0N>&UL4$L! A0#%     @ 98']4&H7@?Y2!@  :0\  !D
M ("!E9\  'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6Q02P$"% ,4    " !E
M@?U0!\REIUP"   P!0  &0              @($>I@  >&PO=V]R:W-H965T
M<R]S:&5E=#(V+GAM;%!+ 0(4 Q0    ( &6!_5#JQ UQ^0T  )<J   9
M          " @;&H  !X;"]W;W)K<VAE971S+W-H965T,C<N>&UL4$L! A0#
M%     @ 98']4%@S+Z-4!   Y0D  !D              ("!X;8  'AL+W=O
M<FMS:&5E=',O<VAE970R."YX;6Q02P$"% ,4    " !E@?U09WNNA;$&   E
M$P  &0              @(%LNP  >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM
M;%!+ 0(4 Q0    ( &6!_5!7<-H3> (  "(%   9              " @53"
M  !X;"]W;W)K<VAE971S+W-H965T,S N>&UL4$L! A0#%     @ 98']4,+0
MH2*& @  -P4  !D              ("! \4  'AL+W=O<FMS:&5E=',O<VAE
M970S,2YX;6Q02P$"% ,4    " !E@?U0BHO3\W4"   S!0  &0
M    @(' QP  >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;%!+ 0(4 Q0    (
M &6!_5!"FNY1W@,   D)   9              " @6S*  !X;"]W;W)K<VAE
M971S+W-H965T,S,N>&UL4$L! A0#%     @ 98']4,>C56V) @  <04  !D
M             ("!@<X  'AL+W=O<FMS:&5E=',O<VAE970S-"YX;6Q02P$"
M% ,4    " !E@?U0C%KC!&T%  "%#@  &0              @(%!T0  >&PO
M=V]R:W-H965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0    ( &6!_5 $L/C>B@0
M 'D,   9              " @>76  !X;"]W;W)K<VAE971S+W-H965T,S8N
M>&UL4$L! A0#%     @ 98']4([8+V^?!0  +@X  !D              ("!
MIML  'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6Q02P$"% ,4    " !E@?U0
MW?%G&C\#  "O!P  &0              @(%\X0  >&PO=V]R:W-H965T<R]S
M:&5E=#,X+GAM;%!+ 0(4 Q0    ( &6!_5#<&:P]M (   4&   9
M      " @?+D  !X;"]W;W)K<VAE971S+W-H965T,SDN>&UL4$L! A0#%
M  @ 98']4%; X?:K P  MP@  !D              ("!W><  'AL+W=O<FMS
M:&5E=',O<VAE970T,"YX;6Q02P$"% ,4    " !E@?U0H$?"2C8%  !W&P
M&0              @(&_ZP  >&PO=V]R:W-H965T<R]S:&5E=#0Q+GAM;%!+
M 0(4 Q0    ( &6!_5#D7U<4N00  $P5   9              " @2SQ  !X
M;"]W;W)K<VAE971S+W-H965T-#(N>&UL4$L! A0#%     @ 98']4#<[;>,]
M P  K@H  !D              ("!'/8  'AL+W=O<FMS:&5E=',O<VAE970T
M,RYX;6Q02P$"% ,4    " !E@?U0O>Q*C2H%  !$&@  &0
M@(&0^0  >&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;%!+ 0(4 Q0    ( &6!
M_5#I3QT 5@8  #\I   9              " @?'^  !X;"]W;W)K<VAE971S
M+W-H965T-#4N>&UL4$L! A0#%     @ 98']4$8M/0LD!@  RR0  !D
M         ("!?@4! 'AL+W=O<FMS:&5E=',O<VAE970T-BYX;6Q02P$"% ,4
M    " !E@?U09BY7A$L#  #)"@  &0              @('9"P$ >&PO=V]R
M:W-H965T<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    ( &6!_5!0= P0&P4  ($;
M   9              " @5L/ 0!X;"]W;W)K<VAE971S+W-H965T-#@N>&UL
M4$L! A0#%     @ 98']4!1:*LET @  1@8  !D              ("!K10!
M 'AL+W=O<FMS:&5E=',O<VAE970T.2YX;6Q02P$"% ,4    " !E@?U0INN0
MXF("  #T!0  &0              @(%8%P$ >&PO=V]R:W-H965T<R]S:&5E
M=#4P+GAM;%!+ 0(4 Q0    ( &6!_5 V8\:+/ 0  +H1   9
M  " @?$9 0!X;"]W;W)K<VAE971S+W-H965T-3$N>&UL4$L! A0#%     @
M98']4,^A/;6, @  ^08  !D              ("!9!X! 'AL+W=O<FMS:&5E
M=',O<VAE970U,BYX;6Q02P$"% ,4    " !E@?U0,*^#44<"  !C!0  &0
M            @($G(0$ >&PO=V]R:W-H965T<R]S:&5E=#4S+GAM;%!+ 0(4
M Q0    ( &6!_5!E7A]>* @  *\Y   9              " @:4C 0!X;"]W
M;W)K<VAE971S+W-H965T-30N>&UL4$L! A0#%     @ 98']4")ZU3"8 @
M,08  !D              ("!!"P! 'AL+W=O<FMS:&5E=',O<VAE970U-2YX
M;6Q02P$"% ,4    " !E@?U0W>'Z(#D"   /!0  &0              @('3
M+@$ >&PO=V]R:W-H965T<R]S:&5E=#4V+GAM;%!+ 0(4 Q0    ( &6!_5"Q
M[%U8'04  /P8   9              " @4,Q 0!X;"]W;W)K<VAE971S+W-H
M965T-3<N>&UL4$L! A0#%     @ 98']4$FWL4S) @  <0@  !D
M     ("!ES8! 'AL+W=O<FMS:&5E=',O<VAE970U."YX;6Q02P$"% ,4
M" !E@?U0!E!U0:T"  #H!P  &0              @(&7.0$ >&PO=V]R:W-H
M965T<R]S:&5E=#4Y+GAM;%!+ 0(4 Q0    ( &6!_5!5L*-%M0(  &0'   9
M              " @7L\ 0!X;"]W;W)K<VAE971S+W-H965T-C N>&UL4$L!
M A0#%     @ 98']4(@Q18"! P  +@T  !D              ("!9S\! 'AL
M+W=O<FMS:&5E=',O<VAE970V,2YX;6Q02P$"% ,4    " !E@?U0.0(.5B #
M   Z"@  &0              @($?0P$ >&PO=V]R:W-H965T<R]S:&5E=#8R
M+GAM;%!+ 0(4 Q0    ( &6!_5#(BX7IOP(  /L'   9              "
M@79& 0!X;"]W;W)K<VAE971S+W-H965T-C,N>&UL4$L! A0#%     @ 98']
M4&#'.  ) P  ! D  !D              ("!;$D! 'AL+W=O<FMS:&5E=',O
M<VAE970V-"YX;6Q02P$"% ,4    " !E@?U0H?DW]K$"  "S!@  &0
M        @(&L3 $ >&PO=V]R:W-H965T<R]S:&5E=#8U+GAM;%!+ 0(4 Q0
M   ( &6!_5"6'(ID7P8  #D<   9              " @91/ 0!X;"]W;W)K
M<VAE971S+W-H965T-C8N>&UL4$L! A0#%     @ 98']4.QN$^)N!   M1$
M !D              ("!*E8! 'AL+W=O<FMS:&5E=',O<VAE970V-RYX;6Q0
M2P$"% ,4    " !E@?U06L63>AP#  #Q"@  &0              @('/6@$
M>&PO=V]R:W-H965T<R]S:&5E=#8X+GAM;%!+ 0(4 Q0    ( &6!_5"EA7H9
MD@,  "4-   9              " @2)> 0!X;"]W;W)K<VAE971S+W-H965T
M-CDN>&UL4$L! A0#%     @ 98']4+'&RFJ, P  1 T  !D
M ("!ZV$! 'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6Q02P$"% ,4    " !E
M@?U0>FTY>) #  !*#0  &0              @(&N90$ >&PO=V]R:W-H965T
M<R]S:&5E=#<Q+GAM;%!+ 0(4 Q0    ( &6!_5 @]:_1^0,  'T1   9
M          " @75I 0!X;"]W;W)K<VAE971S+W-H965T-S(N>&UL4$L! A0#
M%     @ 98']4#G]%\#*!0  AQD  !D              ("!I6T! 'AL+W=O
M<FMS:&5E=',O<VAE970W,RYX;6Q02P$"% ,4    " !E@?U0X/LTX2\#  "G
M"@  &0              @(&F<P$ >&PO=V]R:W-H965T<R]S:&5E=#<T+GAM
M;%!+ 0(4 Q0    ( &6!_5!Z$ICC3P,  $$*   9              " @0QW
M 0!X;"]W;W)K<VAE971S+W-H965T-S4N>&UL4$L! A0#%     @ 98']4)7Z
M\E=? @  /P4  !D              ("!DGH! 'AL+W=O<FMS:&5E=',O<VAE
M970W-BYX;6Q02P$"% ,4    " !E@?U0_A]'N(8#   +#@  &0
M    @($H?0$ >&PO=V]R:W-H965T<R]S:&5E=#<W+GAM;%!+ 0(4 Q0    (
M &6!_5"P25\&B@0  +L5   9              " @>6  0!X;"]W;W)K<VAE
M971S+W-H965T-S@N>&UL4$L! A0#%     @ 98']4)UN^I3K 0  &P0  !D
M             ("!IH4! 'AL+W=O<FMS:&5E=',O<VAE970W.2YX;6Q02P$"
M% ,4    " !E@?U0U&O&1' "  !X#0  #0              @ '(AP$ >&PO
M<W1Y;&5S+GAM;%!+ 0(4 Q0    ( &6!_5"7BKL<P    !,"   +
M      "  6.* 0!?<F5L<R\N<F5L<U!+ 0(4 Q0    ( &6!_5#-/F];O04
M -8S   /              "  4R+ 0!X;"]W;W)K8F]O:RYX;6Q02P$"% ,4
M    " !E@?U0NTG2WV("  "T+@  &@              @ $VD0$ >&PO7W)E
M;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4    " !E@?U0W2=K"Q@"  "%
M+0  $P              @ '0DP$ 6T-O;G1E;G1?5'EP97-=+GAM;%!+!08
1    5P!7 -@7   9E@$    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
..report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

..report table.authRefData a {
	display: block;
	font-weight: bold;
}

..report table.authRefData p {
	margin-top: 0px;
}

..report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

..report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

..report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

..report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
..pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
..report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

..report hr {
	border: 1px solid #acf;
}

/* Top labels */
..report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

..report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

..report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

..report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

..report td.pl div.a {
	width: 200px;
}

..report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
..report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
..report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
..report .re, .report .reu {
	background-color: #def;
}

..report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
..report .ro, .report .rou {
	background-color: white;
}

..report .rou td {
	border-bottom: 1px solid black;
}

..report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
..report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
..report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

..report .nump {
	padding-left: 2em;
}

..report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
..report .text {
	text-align: left;
	white-space: normal;
}

..report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

..report .text .more {
	display: none;
}

..report .text .note {
	font-style: italic;
	font-weight: bold;
}

..report .text .small {
	width: 10em;
}

..report sup {
	font-style: italic;
}

..report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.20.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>216</ContextCount>
  <ElementCount>410</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>72</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>12</UnitCount>
  <MyReports>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0001001 - Document - Cover Page</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CoverPage</Role>
      <ShortName>Cover Page</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>1001002 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedStatementsofOperations</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>1002003 - Statement - Consolidated Statements of Comprehensive Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome</Role>
      <ShortName>Consolidated Statements of Comprehensive Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>1003004 - Statement - Consolidated Statements of Comprehensive Income (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical</Role>
      <ShortName>Consolidated Statements of Comprehensive Income (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>1004005 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedBalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>1005006 - Statement - Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Consolidated Balance Sheets (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>1006007 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedStatementsofCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>1007008 - Statement - Consolidated Statement of Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity</Role>
      <ShortName>Consolidated Statement of Shareholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>1008009 - Statement - Consolidated Statement of Shareholders' Equity (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical</Role>
      <ShortName>Consolidated Statement of Shareholders' Equity (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>2101101 - Disclosure - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/SummaryofSignificantAccountingPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>2103102 - Disclosure - New Pronouncements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/NewPronouncements</Role>
      <ShortName>New Pronouncements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>2104103 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/FairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>2108104 - Disclosure - Cash, Cash Equivalents, and Investments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestments</Role>
      <ShortName>Cash, Cash Equivalents, and Investments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>2116105 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/Inventories</Role>
      <ShortName>Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>2120106 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/Leases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>2124107 - Disclosure - Goodwill (Notes)</LongName>
      <ReportType>Notes</ReportType>
      <Role>http://www.cognex.com/role/GoodwillNotes</Role>
      <ShortName>Goodwill (Notes)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>2127108 - Disclosure - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/IntangibleAssets</Role>
      <ShortName>Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>2130109 - Disclosure - Warranty Obligations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/WarrantyObligations</Role>
      <ShortName>Warranty Obligations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>2133110 - Disclosure - Derivative Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DerivativeInstruments</Role>
      <ShortName>Derivative Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>2140111 - Disclosure - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RevenueRecognition</Role>
      <ShortName>Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>2147112 - Disclosure - Stock-Based Compensation Expense</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockBasedCompensationExpense</Role>
      <ShortName>Stock-Based Compensation Expense</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>2154113 - Disclosure - Stock Repurchase Program</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockRepurchaseProgram</Role>
      <ShortName>Stock Repurchase Program</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>2156114 - Disclosure - Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/Taxes</Role>
      <ShortName>Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>2160115 - Disclosure - Weighted-Average Shares</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/WeightedAverageShares</Role>
      <ShortName>Weighted-Average Shares</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>2164116 - Disclosure - Restructuring Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RestructuringCharges</Role>
      <ShortName>Restructuring Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>2169117 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>2202201 - Disclosure - Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.cognex.com/role/SummaryofSignificantAccountingPolicies</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>2305301 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/FairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/FairValueMeasurements</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>2309302 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables</Role>
      <ShortName>Cash, Cash Equivalents, and Investments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/CashCashEquivalentsandInvestments</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>2317303 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/InventoriesTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/Inventories</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>2321304 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/LeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/Leases</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>2325305 - Disclosure - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/GoodwillTables</Role>
      <ShortName>Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/GoodwillNotes</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>2328306 - Disclosure - Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/IntangibleAssetsTables</Role>
      <ShortName>Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/IntangibleAssets</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>2331307 - Disclosure - Warranty Obligations (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/WarrantyObligationsTables</Role>
      <ShortName>Warranty Obligations (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/WarrantyObligations</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>2334308 - Disclosure - Derivative Instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DerivativeInstrumentsTables</Role>
      <ShortName>Derivative Instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/DerivativeInstruments</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>2341309 - Disclosure - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RevenueRecognitionTables</Role>
      <ShortName>Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/RevenueRecognition</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>2348310 - Disclosure - Stock-Based Compensation Expense (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockBasedCompensationExpenseTables</Role>
      <ShortName>Stock-Based Compensation Expense (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/StockBasedCompensationExpense</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>2357311 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/IncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>2361312 - Disclosure - Weighted-Average Shares (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/WeightedAverageSharesTables</Role>
      <ShortName>Weighted-Average Shares (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/WeightedAverageShares</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>2365313 - Disclosure - Restructuring Charges (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RestructuringChargesTables</Role>
      <ShortName>Restructuring Charges (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.cognex.com/role/RestructuringCharges</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>2406401 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails</Role>
      <ShortName>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>2407402 - Disclosure - Fair Value Measurements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/FairValueMeasurementsDetails</Role>
      <ShortName>Fair Value Measurements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/FairValueMeasurementsTables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>2410403 - Disclosure - Cash, Cash Equivalents, and Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>2411404 - Disclosure - Cash, Cash Equivalents, and Investments - Components of Cash, Cash Equivalents, and Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments - Components of Cash, Cash Equivalents, and Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>2412405 - Disclosure - Cash, Cash Equivalents, and Investments - Summary of Available-for-Sale Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments - Summary of Available-for-Sale Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>2413406 - Disclosure - Cash, Cash Equivalents, and Investments - Gross Unrealized Losses and Fair Values for Available-for-Sale Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments - Gross Unrealized Losses and Fair Values for Available-for-Sale Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>2414407 - Disclosure - Cash, Cash Equivalents, and Investments Cash, Cash Equivalents, and Investments - Schedule of Allowance for Credit Loss Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments Cash, Cash Equivalents, and Investments - Schedule of Allowance for Credit Loss Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>2415408 - Disclosure - Cash, Cash Equivalents, and Investments - Effective Maturity Dates of Available-for-Sale Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments - Effective Maturity Dates of Available-for-Sale Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>2418409 - Disclosure - Inventories - Schedule of Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails</Role>
      <ShortName>Inventories - Schedule of Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>2419410 - Disclosure - Inventories - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/InventoriesNarrativeDetails</Role>
      <ShortName>Inventories - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>2422411 - Disclosure - Leases - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/LeasesNarrativeDetails</Role>
      <ShortName>Leases - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>2423412 - Disclosure - Leases - Future Minimum Lease Payment Obligations Under Operating Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails</Role>
      <ShortName>Leases - Future Minimum Lease Payment Obligations Under Operating Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>2426413 - Disclosure - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/GoodwillDetails</Role>
      <ShortName>Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/GoodwillTables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>2429414 - Disclosure - Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/IntangibleAssetsDetails</Role>
      <ShortName>Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/IntangibleAssetsTables</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>2432415 - Disclosure - Warranty Obligations - Changes in Warranty Obligations (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail</Role>
      <ShortName>Warranty Obligations - Changes in Warranty Obligations (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>2435416 - Disclosure - Derivative Instruments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DerivativeInstrumentsDetails</Role>
      <ShortName>Derivative Instruments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/DerivativeInstrumentsTables</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>2436417 - Disclosure - Derivative Instruments - Outstanding Forward Contracts Table (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails</Role>
      <ShortName>Derivative Instruments - Outstanding Forward Contracts Table (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>2437418 - Disclosure - Derivative Instruments - Schedule of Derivative Instruments in Statement of Financial Position, Fair Value (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails</Role>
      <ShortName>Derivative Instruments - Schedule of Derivative Instruments in Statement of Financial Position, Fair Value (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>2438419 - Disclosure - Derivative Instruments - Offsetting Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails</Role>
      <ShortName>Derivative Instruments - Offsetting Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>2439420 - Disclosure - Derivative Instruments - Derivative Instruments, Gain (Loss) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails</Role>
      <ShortName>Derivative Instruments - Derivative Instruments, Gain (Loss) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>2442421 - Disclosure - Revenue Recognition - Revenue Disaggregated by Geography (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails</Role>
      <ShortName>Revenue Recognition - Revenue Disaggregated by Geography (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>2443422 - Disclosure - Revenue Recognition - Revenue Disaggregated by Products and Services (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails</Role>
      <ShortName>Revenue Recognition - Revenue Disaggregated by Products and Services (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>2444423 - Disclosure - Revenue Recognition - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails</Role>
      <ShortName>Revenue Recognition - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>2445424 - Disclosure - Revenue Recognition - Schedule of Allowance for Credit Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails</Role>
      <ShortName>Revenue Recognition - Schedule of Allowance for Credit Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>2446425 - Disclosure - Revenue Recognition - Deferred Revenue Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails</Role>
      <ShortName>Revenue Recognition - Deferred Revenue Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>2449426 - Disclosure - Stock-Based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockBasedCompensationExpenseDetails</Role>
      <ShortName>Stock-Based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/StockBasedCompensationExpenseTables</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>2450427 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails</Role>
      <ShortName>Stock-Based Compensation Expense - Summary of Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>2451428 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails</Role>
      <ShortName>Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>2452429 - Disclosure - Stock-Based Compensation Expense Stock-Based Compensation Expense - Schedule of Restricted Stock Units (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails</Role>
      <ShortName>Stock-Based Compensation Expense Stock-Based Compensation Expense - Schedule of Restricted Stock Units (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>2453430 - Disclosure - Stock-Based Compensation Expense - Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails</Role>
      <ShortName>Stock-Based Compensation Expense - Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>2455431 - Disclosure - Stock Repurchase Program (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/StockRepurchaseProgramDetails</Role>
      <ShortName>Stock Repurchase Program (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/StockRepurchaseProgram</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>2458432 - Disclosure - Income Taxes - Reconciliation of United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate, or Income Tax Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails</Role>
      <ShortName>Income Taxes - Reconciliation of United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate, or Income Tax Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>2459433 - Disclosure - Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/IncomeTaxesDetails</Role>
      <ShortName>Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/IncomeTaxesTables</ParentRole>
      <Position>73</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>2462434 - Disclosure - Weighted-Average Shares (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/WeightedAverageSharesDetails</Role>
      <ShortName>Weighted-Average Shares (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/WeightedAverageSharesTables</ParentRole>
      <Position>74</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>2463435 - Disclosure - Weighted-Average Shares - Calculation of Weighted-Average Shares (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails</Role>
      <ShortName>Weighted-Average Shares - Calculation of Weighted-Average Shares (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>2466436 - Disclosure - Restructuring Charges - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RestructuringChargesNarrativeDetails</Role>
      <ShortName>Restructuring Charges - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>2467437 - Disclosure - Restructuring Charges - Summary (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RestructuringChargesSummaryDetails</Role>
      <ShortName>Restructuring Charges - Summary (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>2468438 - Disclosure - Restructuring Charges - Activity in Restructuring Reserve (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails</Role>
      <ShortName>Restructuring Charges - Activity in Restructuring Reserve (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="cgnx-20200628.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>2470439 - Disclosure - Subsequent Events (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/SubsequentEventsDetails</Role>
      <ShortName>Subsequent Events (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.cognex.com/role/SubsequentEvents</ParentRole>
      <Position>79</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-Q" original="cgnx-20200628.htm">cgnx-20200628.htm</File>
    <File>a6282020-10qxexhibit311.htm</File>
    <File>a6282020-10qxexhibit312.htm</File>
    <File>a6282020-10qxexhibit321.htm</File>
    <File>a6282020-10qxexhibit322.htm</File>
    <File>cgnx-20200628.xsd</File>
    <File>cgnx-20200628_cal.xml</File>
    <File>cgnx-20200628_def.xml</File>
    <File>cgnx-20200628_lab.xml</File>
    <File>cgnx-20200628_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy>http://xbrl.sec.gov/currency/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/country/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/us-gaap/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/srt/2020-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>97
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "cgnx-20200628.htm": {
   "axisCustom": 0,
   "axisStandard": 22,
   "contextCount": 216,
   "dts": {
    "calculationLink": {
     "local": [
      "cgnx-20200628_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "cgnx-20200628_def.xml"
     ],
     "remote": [
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-eedm-def-2020-01-31.xml",
      "http://xbrl.fasb.org/srt/2020/elts/srt-eedm1-def-2020-01-31.xml"
     ]
    },
    "inline": {
     "local": [
      "cgnx-20200628.htm"
     ]
    },
    "labelLink": {
     "local": [
      "cgnx-20200628_lab.xml"
     ],
     "remote": [
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-doc-2020-01-31.xml",
      "https://xbrl.sec.gov/dei/2019/dei-doc-2019-01-31.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cgnx-20200628_pre.xml"
     ]
    },
    "referenceLink": {
     "remote": [
      "https://xbrl.sec.gov/dei/2019/dei-ref-2019-01-31.xml",
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-ref-2020-01-31.xml"
     ]
    },
    "schema": {
     "local": [
      "cgnx-20200628.xsd"
     ],
     "remote": [
      "http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd",
      "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/dtr/type/numeric-2009-12-16.xsd",
      "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://xbrl.fasb.org/srt/2020/elts/srt-types-2020-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-roles-2020-01-31.xsd",
      "http://xbrl.fasb.org/srt/2020/elts/srt-roles-2020-01-31.xsd",
      "https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-types-2020-01-31.xsd",
      "https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd",
      "https://xbrl.sec.gov/dei/2019/dei-2019-01-31.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/deprecated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-parts-codification-2020-01-31.xsd"
     ]
    }
   },
   "elementCount": 552,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2020-01-31": 28,
    "http://xbrl.sec.gov/dei/2019-01-31": 6,
    "total": 34
   },
   "keyCustom": 32,
   "keyStandard": 378,
   "memberCustom": 16,
   "memberStandard": 55,
   "nsprefix": "cgnx",
   "nsuri": "http://www.cognex.com/20200628",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "0001001 - Document - Cover Page",
     "role": "http://www.cognex.com/role/CoverPage",
     "shortName": "Cover Page",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2101101 - Disclosure - Summary of Significant Accounting Policies",
     "role": "http://www.cognex.com/role/SummaryofSignificantAccountingPolicies",
     "shortName": "Summary of Significant Accounting Policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2103102 - Disclosure - New Pronouncements",
     "role": "http://www.cognex.com/role/NewPronouncements",
     "shortName": "New Pronouncements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2104103 - Disclosure - Fair Value Measurements",
     "role": "http://www.cognex.com/role/FairValueMeasurements",
     "shortName": "Fair Value Measurements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2108104 - Disclosure - Cash, Cash Equivalents, and Investments",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestments",
     "shortName": "Cash, Cash Equivalents, and Investments",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2116105 - Disclosure - Inventories",
     "role": "http://www.cognex.com/role/Inventories",
     "shortName": "Inventories",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2120106 - Disclosure - Leases",
     "role": "http://www.cognex.com/role/Leases",
     "shortName": "Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2124107 - Disclosure - Goodwill (Notes)",
     "role": "http://www.cognex.com/role/GoodwillNotes",
     "shortName": "Goodwill (Notes)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2127108 - Disclosure - Intangible Assets",
     "role": "http://www.cognex.com/role/IntangibleAssets",
     "shortName": "Intangible Assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ProductWarrantyDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2130109 - Disclosure - Warranty Obligations",
     "role": "http://www.cognex.com/role/WarrantyObligations",
     "shortName": "Warranty Obligations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ProductWarrantyDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2133110 - Disclosure - Derivative Instruments",
     "role": "http://www.cognex.com/role/DerivativeInstruments",
     "shortName": "Derivative Instruments",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1001002 - Statement - Consolidated Statements of Operations",
     "role": "http://www.cognex.com/role/ConsolidatedStatementsofOperations",
     "shortName": "Consolidated Statements of Operations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2140111 - Disclosure - Revenue Recognition",
     "role": "http://www.cognex.com/role/RevenueRecognition",
     "shortName": "Revenue Recognition",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CompensationRelatedCostsGeneralTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2147112 - Disclosure - Stock-Based Compensation Expense",
     "role": "http://www.cognex.com/role/StockBasedCompensationExpense",
     "shortName": "Stock-Based Compensation Expense",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CompensationRelatedCostsGeneralTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2154113 - Disclosure - Stock Repurchase Program",
     "role": "http://www.cognex.com/role/StockRepurchaseProgram",
     "shortName": "Stock Repurchase Program",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2156114 - Disclosure - Taxes",
     "role": "http://www.cognex.com/role/Taxes",
     "shortName": "Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i2d208142e8254dfc8b1d676c24d255de_D20190101-20190630",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2160115 - Disclosure - Weighted-Average Shares",
     "role": "http://www.cognex.com/role/WeightedAverageShares",
     "shortName": "Weighted-Average Shares",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2164116 - Disclosure - Restructuring Charges",
     "role": "http://www.cognex.com/role/RestructuringCharges",
     "shortName": "Restructuring Charges",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2169117 - Disclosure - Subsequent Events",
     "role": "http://www.cognex.com/role/SubsequentEvents",
     "shortName": "Subsequent Events",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2202201 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "role": "http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2305301 - Disclosure - Fair Value Measurements (Tables)",
     "role": "http://www.cognex.com/role/FairValueMeasurementsTables",
     "shortName": "Fair Value Measurements (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2309302 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables",
     "shortName": "Cash, Cash Equivalents, and Investments (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1002003 - Statement - Consolidated Statements of Comprehensive Income",
     "role": "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome",
     "shortName": "Consolidated Statements of Comprehensive Income",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2317303 - Disclosure - Inventories (Tables)",
     "role": "http://www.cognex.com/role/InventoriesTables",
     "shortName": "Inventories (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2321304 - Disclosure - Leases (Tables)",
     "role": "http://www.cognex.com/role/LeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2325305 - Disclosure - Goodwill (Tables)",
     "role": "http://www.cognex.com/role/GoodwillTables",
     "shortName": "Goodwill (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2328306 - Disclosure - Intangible Assets (Tables)",
     "role": "http://www.cognex.com/role/IntangibleAssetsTables",
     "shortName": "Intangible Assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2331307 - Disclosure - Warranty Obligations (Tables)",
     "role": "http://www.cognex.com/role/WarrantyObligationsTables",
     "shortName": "Warranty Obligations (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:OutstandingForwardContractsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2334308 - Disclosure - Derivative Instruments (Tables)",
     "role": "http://www.cognex.com/role/DerivativeInstrumentsTables",
     "shortName": "Derivative Instruments (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:OutstandingForwardContractsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2341309 - Disclosure - Revenue Recognition (Tables)",
     "role": "http://www.cognex.com/role/RevenueRecognitionTables",
     "shortName": "Revenue Recognition (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2348310 - Disclosure - Stock-Based Compensation Expense (Tables)",
     "role": "http://www.cognex.com/role/StockBasedCompensationExpenseTables",
     "shortName": "Stock-Based Compensation Expense (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2357311 - Disclosure - Income Taxes (Tables)",
     "role": "http://www.cognex.com/role/IncomeTaxesTables",
     "shortName": "Income Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2361312 - Disclosure - Weighted-Average Shares (Tables)",
     "role": "http://www.cognex.com/role/WeightedAverageSharesTables",
     "shortName": "Weighted-Average Shares (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": null,
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1003004 - Statement - Consolidated Statements of Comprehensive Income (Parenthetical)",
     "role": "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical",
     "shortName": "Consolidated Statements of Comprehensive Income (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2365313 - Disclosure - Restructuring Charges (Tables)",
     "role": "http://www.cognex.com/role/RestructuringChargesTables",
     "shortName": "Restructuring Charges (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:MoneyMarketFundsAtCarryingValue",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2406401 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Details)",
     "role": "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
     "shortName": "Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i9dc01e71d6314fe6884aa8e36895f63e_I20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:MoneyMarketFundsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2407402 - Disclosure - Fair Value Measurements (Details)",
     "role": "http://www.cognex.com/role/FairValueMeasurementsDetails",
     "shortName": "Fair Value Measurements (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2410403 - Disclosure - Cash, Cash Equivalents, and Investments (Details)",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails",
     "shortName": "Cash, Cash Equivalents, and Investments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleSecuritiesGrossRealizedGains",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Cash",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2411404 - Disclosure - Cash, Cash Equivalents, and Investments - Components of Cash, Cash Equivalents, and Investments (Details)",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
     "shortName": "Cash, Cash Equivalents, and Investments - Components of Cash, Cash Equivalents, and Investments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Cash",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2412405 - Disclosure - Cash, Cash Equivalents, and Investments - Summary of Available-for-Sale Investments (Details)",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
     "shortName": "Cash, Cash Equivalents, and Investments - Summary of Available-for-Sale Investments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2413406 - Disclosure - Cash, Cash Equivalents, and Investments - Gross Unrealized Losses and Fair Values for Available-for-Sale Investments (Details)",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
     "shortName": "Cash, Cash Equivalents, and Investments - Gross Unrealized Losses and Fair Values for Available-for-Sale Investments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2414407 - Disclosure - Cash, Cash Equivalents, and Investments Cash, Cash Equivalents, and Investments - Schedule of Allowance for Credit Loss Activity (Details)",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails",
     "shortName": "Cash, Cash Equivalents, and Investments Cash, Cash Equivalents, and Investments - Schedule of Allowance for Credit Loss Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2415408 - Disclosure - Cash, Cash Equivalents, and Investments - Effective Maturity Dates of Available-for-Sale Investments (Details)",
     "role": "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
     "shortName": "Cash, Cash Equivalents, and Investments - Effective Maturity Dates of Available-for-Sale Investments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2418409 - Disclosure - Inventories - Schedule of Inventories (Details)",
     "role": "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails",
     "shortName": "Inventories - Schedule of Inventories (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1004005 - Statement - Consolidated Balance Sheets",
     "role": "http://www.cognex.com/role/ConsolidatedBalanceSheets",
     "shortName": "Consolidated Balance Sheets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ExcessAndObsoleteInventoryCharges",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2419410 - Disclosure - Inventories - Narrative (Details)",
     "role": "http://www.cognex.com/role/InventoriesNarrativeDetails",
     "shortName": "Inventories - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseLiability",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2422411 - Disclosure - Leases - Narrative (Details)",
     "role": "http://www.cognex.com/role/LeasesNarrativeDetails",
     "shortName": "Leases - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2423412 - Disclosure - Leases - Future Minimum Lease Payment Obligations Under Operating Leases (Details)",
     "role": "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails",
     "shortName": "Leases - Future Minimum Lease Payment Obligations Under Operating Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2426413 - Disclosure - Goodwill (Details)",
     "role": "http://www.cognex.com/role/GoodwillDetails",
     "shortName": "Goodwill (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2429414 - Disclosure - Intangible Assets (Details)",
     "role": "http://www.cognex.com/role/IntangibleAssetsDetails",
     "shortName": "Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2432415 - Disclosure - Warranty Obligations - Changes in Warranty Obligations (Detail)",
     "role": "http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail",
     "shortName": "Warranty Obligations - Changes in Warranty Obligations (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i52434fd077654f68a8f6068def6a4808_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2435416 - Disclosure - Derivative Instruments (Details)",
     "role": "http://www.cognex.com/role/DerivativeInstrumentsDetails",
     "shortName": "Derivative Instruments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i52434fd077654f68a8f6068def6a4808_D20200101-20200628",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:OutstandingForwardContractsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ie5803dec173141819033849ca19c6690_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2436417 - Disclosure - Derivative Instruments - Outstanding Forward Contracts Table (Details)",
     "role": "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails",
     "shortName": "Derivative Instruments - Outstanding Forward Contracts Table (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:OutstandingForwardContractsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ie5803dec173141819033849ca19c6690_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2437418 - Disclosure - Derivative Instruments - Schedule of Derivative Instruments in Statement of Financial Position, Fair Value (Details)",
     "role": "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails",
     "shortName": "Derivative Instruments - Schedule of Derivative Instruments in Statement of Financial Position, Fair Value (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i06aa76c6ba1f4c87b3a8d44c4b2e3844_I20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2438419 - Disclosure - Derivative Instruments - Offsetting Assets (Details)",
     "role": "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails",
     "shortName": "Derivative Instruments - Offsetting Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": null,
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1005006 - Statement - Consolidated Balance Sheets (Parenthetical)",
     "role": "http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
     "shortName": "Consolidated Balance Sheets (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "id0e2a9c3d94042afb732e0872efdfca6_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2439420 - Disclosure - Derivative Instruments - Derivative Instruments, Gain (Loss) (Details)",
     "role": "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails",
     "shortName": "Derivative Instruments - Derivative Instruments, Gain (Loss) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "id0e2a9c3d94042afb732e0872efdfca6_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2442421 - Disclosure - Revenue Recognition - Revenue Disaggregated by Geography (Details)",
     "role": "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails",
     "shortName": "Revenue Recognition - Revenue Disaggregated by Geography (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ie3fd972f5b0b4967bf88d0e4de64b1e5_D20200330-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2443422 - Disclosure - Revenue Recognition - Revenue Disaggregated by Products and Services (Details)",
     "role": "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails",
     "shortName": "Revenue Recognition - Revenue Disaggregated by Products and Services (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50380bb827a94448a6ac013d0bc30e84_D20200330-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CapitalizedContractCostGross",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2444423 - Disclosure - Revenue Recognition - Additional Information (Details)",
     "role": "http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails",
     "shortName": "Revenue Recognition - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:CapitalizedContractCostGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2445424 - Disclosure - Revenue Recognition - Schedule of Allowance for Credit Loss (Details)",
     "role": "http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails",
     "shortName": "Revenue Recognition - Schedule of Allowance for Credit Loss (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DeferredRevenueByArrangementDisclosureTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DeferredRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2446425 - Disclosure - Revenue Recognition - Deferred Revenue Activity (Details)",
     "role": "http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails",
     "shortName": "Revenue Recognition - Deferred Revenue Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DeferredRevenueByArrangementDisclosureTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DeferredRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "2",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2449426 - Disclosure - Stock-Based Compensation Expense (Details)",
     "role": "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
     "shortName": "Stock-Based Compensation Expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "2",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2450427 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Details)",
     "role": "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails",
     "shortName": "Stock-Based Compensation Expense - Summary of Stock Option Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2451428 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Details)",
     "role": "http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails",
     "shortName": "Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i9e0c96315b424e56924808a79a15e591_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2452429 - Disclosure - Stock-Based Compensation Expense Stock-Based Compensation Expense - Schedule of Restricted Stock Units (Details)",
     "role": "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails",
     "shortName": "Stock-Based Compensation Expense Stock-Based Compensation Expense - Schedule of Restricted Stock Units (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i9e0c96315b424e56924808a79a15e591_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1006007 - Statement - Consolidated Statements of Cash Flows",
     "role": "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows",
     "shortName": "Consolidated Statements of Cash Flows",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:StockOptionPlanExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2453430 - Disclosure - Stock-Based Compensation Expense - Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs (Details)",
     "role": "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails",
     "shortName": "Stock-Based Compensation Expense - Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i06a9f689529d44ea9723e6cc0ac766fa_D20200330-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "if2ca316ec02e481498b0cbcf89252fe1_I20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2455431 - Disclosure - Stock Repurchase Program (Details)",
     "role": "http://www.cognex.com/role/StockRepurchaseProgramDetails",
     "shortName": "Stock Repurchase Program (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i979d000c5483415184aa8b9629ee1c46_I20181029",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2458432 - Disclosure - Income Taxes - Reconciliation of United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate, or Income Tax Provision (Details)",
     "role": "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails",
     "shortName": "Income Taxes - Reconciliation of United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate, or Income Tax Provision (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "2",
      "lang": "en-US",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2459433 - Disclosure - Income Taxes (Details)",
     "role": "http://www.cognex.com/role/IncomeTaxesDetails",
     "shortName": "Income Taxes (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i65e4f52b3f704a2c82c35ab608d31e1d_D20200101-20200628",
      "decimals": "-3",
      "lang": "en-US",
      "name": "cgnx:IncreaseDecreaseInterestAndPenalties",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2462434 - Disclosure - Weighted-Average Shares (Details)",
     "role": "http://www.cognex.com/role/WeightedAverageSharesDetails",
     "shortName": "Weighted-Average Shares (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i07bda74078784d8590fefad2ccda6876_D20200330-20200628",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2463435 - Disclosure - Weighted-Average Shares - Calculation of Weighted-Average Shares (Details)",
     "role": "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails",
     "shortName": "Weighted-Average Shares - Calculation of Weighted-Average Shares (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ia5dfd58e2cc040f1998dc32f8d8d305f_D20200330-20200628",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ic537b61975ca4beba7154e52aeb4ef46_I20200526",
      "decimals": "2",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2466436 - Disclosure - Restructuring Charges - Narrative (Details)",
     "role": "http://www.cognex.com/role/RestructuringChargesNarrativeDetails",
     "shortName": "Restructuring Charges - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ic537b61975ca4beba7154e52aeb4ef46_I20200526",
      "decimals": "2",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ic537b61975ca4beba7154e52aeb4ef46_I20200526",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedCostExpectedCost1",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2467437 - Disclosure - Restructuring Charges - Summary (Details)",
     "role": "http://www.cognex.com/role/RestructuringChargesSummaryDetails",
     "shortName": "Restructuring Charges - Summary (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ife0e92d165ae475ebc3a85b24bcf6df2_I20200526",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedCostExpectedCost1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R78": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringReserve",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2468438 - Disclosure - Restructuring Charges - Activity in Restructuring Reserve (Details)",
     "role": "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
     "shortName": "Restructuring Charges - Activity in Restructuring Reserve (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "i50c300c01cad466888f3adcd2745bef7_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringReserve",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R79": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "id52911d2174e4651aeb38a8ca2dabb70_D20200729-20200729",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Dividends",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "2470439 - Disclosure - Subsequent Events (Details)",
     "role": "http://www.cognex.com/role/SubsequentEventsDetails",
     "shortName": "Subsequent Events (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "id52911d2174e4651aeb38a8ca2dabb70_D20200729-20200729",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Dividends",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ib8d6fc9c105641509da02b1704c72686_I20181231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommonStockSharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1007008 - Statement - Consolidated Statement of Shareholders' Equity",
     "role": "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
     "shortName": "Consolidated Statement of Shareholders' Equity",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20200628.htm",
      "contextRef": "ib8d6fc9c105641509da02b1704c72686_I20181231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommonStockSharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": null,
     "groupType": "statement",
     "isDefault": "false",
     "longName": "1008009 - Statement - Consolidated Statement of Shareholders' Equity (Parenthetical)",
     "role": "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical",
     "shortName": "Consolidated Statement of Shareholders' Equity (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    }
   },
   "segmentCount": 72,
   "tag": {
    "cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment",
        "label": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AccruedExpensesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accrued expenses.",
        "label": "Accrued Expenses [Member]",
        "terseLabel": "Accrued Expenses"
       }
      }
     },
     "localname": "AccruedExpensesMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_AgencyBondsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Agency bond.",
        "label": "Agency Bonds [Member]",
        "terseLabel": "Agency Bonds"
       }
      }
     },
     "localname": "AgencyBondsMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ApplicationSpecificCustomerSolutionsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Application-Specific Customer Solutions [Member]",
        "label": "Application-Specific Customer Solutions [Member]",
        "terseLabel": "Application-Specific Customer Solutions"
       }
      }
     },
     "localname": "ApplicationSpecificCustomerSolutionsMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_AsiaExcludingChinaMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Asia, Excluding China [Member]",
        "label": "Asia, Excluding China [Member]",
        "terseLabel": "Other Asia"
       }
      }
     },
     "localname": "AsiaExcludingChinaMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value.",
        "label": "Available For Sale Securities Debt Maturities After Four Years Before Five Years Fair Value",
        "terseLabel": "4-5 years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Available For Sale Securities Debt Maturities After One Year Before Two Years Fair Value",
        "terseLabel": "1-2 years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Available-for-sale securities, debt maturities after third year but before fourth year, fair value.",
        "label": "Available For Sale Securities Debt Maturities After Three Years Before Four Years Fair Value",
        "terseLabel": "3-4 years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Available-for-sale securities, debt maturities after second year but before third year, fair value.",
        "label": "Available For Sale Securities Debt Maturities After Two Years Before Three Years Fair Value",
        "terseLabel": "2-3 years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Cash, cash equivalents, short term and long term investments.",
        "label": "Cash Cash Equivalents Short Term And Long Term Investments",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "CashCashEquivalentsShortTermAndLongTermInvestments",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_CashflowshedgesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Cash flows hedges [Abstract]",
        "label": "Cash flows hedges [Abstract]",
        "terseLabel": "Cash flow hedges:"
       }
      }
     },
     "localname": "CashflowshedgesAbstract",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_CertificateOfDepositFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Certificate Of Deposit, Fair Value Disclosure",
        "label": "Certificate Of Deposit, Fair Value Disclosure",
        "terseLabel": "Certificate Of Deposit, Fair Value Disclosure"
       }
      }
     },
     "localname": "CertificateOfDepositFairValueDisclosure",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ChiaroTechnologiesLLCMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Chiaro Technologies LLC [Member]",
        "label": "Chiaro Technologies LLC [Member]",
        "terseLabel": "Chiaro Technologies LLC [Member]"
       }
      }
     },
     "localname": "ChiaroTechnologiesLLCMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Components of cash cash equivalents and investments.",
        "label": "Components Of Cash Cash Equivalents And Investments [Table Text Block]",
        "terseLabel": "Components of Cash, Cash Equivalents, and Investments"
       }
      }
     },
     "localname": "ComponentsOfCashCashEquivalentsAndInvestmentsTableTextBlock",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_CurrencytranslationadjustmentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Currency translation adjustments [Abstract]",
        "label": "Currency translation adjustments [Abstract]",
        "terseLabel": "Foreign currency translation adjustments:"
       }
      }
     },
     "localname": "CurrencytranslationadjustmentsAbstract",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_CustomerContractsAndRelationshipsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Customer Contracts And Relationships [Member]",
        "label": "Customer Contracts And Relationships [Member]",
        "terseLabel": "Customer relationships"
       }
      }
     },
     "localname": "CustomerContractsAndRelationshipsMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_DeferredRevenueForeignCurrencyExchangeAdjustment": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Deferred Revenue, Foreign Currency Exchange Adjustment",
        "label": "Deferred Revenue, Foreign Currency Exchange Adjustment",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "DeferredRevenueForeignCurrencyExchangeAdjustment",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks [Member]",
        "label": "Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks [Member]",
        "terseLabel": "Indefinite-lived intangible asset excluding in-process technologies"
       }
      }
     },
     "localname": "DistributionRightsDevelopedTechnologyRightsCustomerContractsAndRelationshipsOtherIntangibleAssetsAndTrademarksMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Excluding Discrete Items, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Excluding Discrete Items, Percent",
        "terseLabel": "Effective tax rate excluding discrete items (as a percent)"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationExcludingDiscreteItemsPercent",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Tax Rate Adjustments, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Tax Rate Adjustments, Percent",
        "terseLabel": "Tax rate adjustment",
        "verboseLabel": "Tax rate adjustment (as a percent)"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxRateAdjustmentsPercent",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails",
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Employee service share based compensation recognized period costs capitalized amount.",
        "label": "Employee Service Share Based Compensation Recognized Period Costs Capitalized Amount",
        "terseLabel": "Recognized period costs capitalized"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Not yet Recognized, Period for Recognition",
        "label": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Not yet Recognized, Period for Recognition",
        "terseLabel": "Weighted average period to be recognized"
       }
      }
     },
     "localname": "EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationNotyetRecognizedPeriodforRecognition",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_EnShapeGmbHMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "EnShape GmbH",
        "label": "EnShape GmbH [Member]",
        "terseLabel": "EnShape GmbH [Member]"
       }
      }
     },
     "localname": "EnShapeGmbHMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Estimated forfeiture rate for unvested options for all non-senior management.",
        "label": "Estimated Forfeiture Rate For Unvested Options For All Non Senior Management",
        "terseLabel": "Estimated annual forfeiture rate for unvested options for all other employees"
       }
      }
     },
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Estimated forfeiture rate for unvested options for senior management.",
        "label": "Estimated Forfeiture Rate For Unvested Options For Senior Management",
        "terseLabel": "Estimated annual forfeiture rate for unvested options for senior management"
       }
      }
     },
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_ExcessAndObsoleteInventoryCharges": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Excess and Obsolete Inventory Charges",
        "label": "Excess and Obsolete Inventory Charges",
        "terseLabel": "Excess and obsolete inventory charges"
       }
      }
     },
     "localname": "ExcessAndObsoleteInventoryCharges",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.cognex.com/role/InventoriesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ExpirationPeriodOfStockOptionPlan": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Expiration period of stock option plan.",
        "label": "Expiration Period Of Stock Option Plan",
        "terseLabel": "Expiration period from grant day"
       }
      }
     },
     "localname": "ExpirationPeriodOfStockOptionPlan",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_GViVenturesInc.Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "GVi Ventures, Inc. [Member]",
        "label": "GVi Ventures, Inc. [Member]",
        "terseLabel": "GVi Ventures, Inc. [Member]"
       }
      }
     },
     "localname": "GViVenturesInc.Member",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_GeneralStockOptionPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "General stock option plan.",
        "label": "General Stock Option Plan [Member]",
        "terseLabel": "General Stock Option Plan"
       }
      }
     },
     "localname": "GeneralStockOptionPlanMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_IncomeTaxExaminationYearsUnderExaminationOtherEntities": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The tax year(s) being audited in connection with the income tax examination for other entities.",
        "label": "Income Tax Examination Years Under Examination Other Entities",
        "terseLabel": "Tax years open to examination by various taxing authorities for other entities"
       }
      }
     },
     "localname": "IncomeTaxExaminationYearsUnderExaminationOtherEntities",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_IncreaseDecreaseInterestAndPenalties": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Increase decrease interest and penalties.",
        "label": "Increase Decrease Interest And Penalties",
        "terseLabel": "Interest and penalties included in reserve"
       }
      }
     },
     "localname": "IncreaseDecreaseInterestAndPenalties",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Increase (decrease) in compensation expense due to revised estimated forfeiture rates.",
        "label": "Increase In Compensation Expense Due To Revised Estimated Forfeiture Rates",
        "terseLabel": "Increase (decrease) to compensation expense"
       }
      }
     },
     "localname": "IncreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_LesseeOperatingLeaseLiabilityPaymentsDueYearSix": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Lessee, Operating Lease, Liability, Payments, Due Year Six",
        "label": "Lessee, Operating Lease, Liability, Payments, Due Year Six",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearSix",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Lessee, Operating Lease, Liability, Payments, Due after Year Six",
        "label": "Lessee, Operating Lease, Liability, Payments, Due after Year Six",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueafterYearSix",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_LiabilityForUncertainTaxPositions": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Liability for uncertain tax positions, total.",
        "label": "Liability For Uncertain Tax Positions",
        "terseLabel": "Liability for uncertain tax positions"
       }
      }
     },
     "localname": "LiabilityForUncertainTaxPositions",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_LongTermInvestmentsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Long-term investments.",
        "label": "Long Term Investments [Member]",
        "terseLabel": "Long-Term Investments"
       }
      }
     },
     "localname": "LongTermInvestmentsMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Maximum decrease in income tax expense due to release in reserves.",
        "label": "Maximum Decrease In Income Tax Expense Due To Release In Reserves",
        "terseLabel": "Maximum decrease in income tax expense due to release in reserves"
       }
      }
     },
     "localname": "MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Minimum decrease in income tax expense due to release in reserves.",
        "label": "Minimum Decrease In Income Tax Expense Due To Release In Reserves",
        "terseLabel": "Minimum decrease in income tax expense due to release in reserves"
       }
      }
     },
     "localname": "MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_NumberOfGroupsWithinEmployeePopulation": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of groups within employee population.",
        "label": "Number Of Groups Within Employee Population",
        "terseLabel": "Groups within the employee population"
       }
      }
     },
     "localname": "NumberOfGroupsWithinEmployeePopulation",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Operating Lease, Right-Of-Use Asset, Carrying Value Of Impaired Asset",
        "label": "Operating Lease, Right-Of-Use Asset, Carrying Value Of Impaired Asset",
        "terseLabel": "Carrying value operating lease right-of-use assets impaired"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_OutstandingForwardContractsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Outstanding forward contracts table.",
        "label": "Outstanding Forward Contracts [Table Text Block]",
        "terseLabel": "Outstanding Forward Contracts Table"
       }
      }
     },
     "localname": "OutstandingForwardContractsTableTextBlock",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_RepurchaseProgramMarch2020Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Repurchase Program March 2020 [Member]",
        "label": "Repurchase Program March 2020 [Member]",
        "terseLabel": "Repurchase Program March 2020"
       }
      }
     },
     "localname": "RepurchaseProgramMarch2020Member",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_RepurchaseProgramOctober2018Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Repurchase Program October 2018 [Member]",
        "label": "Repurchase Program October 2018 [Member]",
        "terseLabel": "Repurchase Program October 2018"
       }
      }
     },
     "localname": "RepurchaseProgramOctober2018Member",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_SellingGeneralAndAdministrativeMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Selling, general, and administrative.",
        "label": "Selling General And Administrative [Member]",
        "terseLabel": "Selling, General, and Administrative"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1 [Abstract]",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Additional Disclosures1 [Abstract]",
        "terseLabel": "Aggregate Intrinsic Value (in\u00a0thousands)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosures1Abstract",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value.",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Aggregate Intrinsic Value",
        "terseLabel": "Exercisable, in dollars"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options vested fair value.",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Vested Fair Value",
        "terseLabel": "Total fair values of stock options vest"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Shares based compensation arrangement by shares based payment award options exercisable intrinsic value.",
        "label": "Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercisable Intrinsic Value",
        "terseLabel": "Total intrinsic value"
       }
      }
     },
     "localname": "SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisableIntrinsicValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_StandardProductsandServicesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Standard Products and Services [Member]",
        "label": "Standard Products and Services [Member]",
        "terseLabel": "Standard Products and Services"
       }
      }
     },
     "localname": "StandardProductsandServicesMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_StockRepurchaseProgramAggregateNumberofSharesRepurchased": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Stock Repurchase Program, Aggregate Number of Shares Repurchased",
        "label": "Stock Repurchase Program, Aggregate Number of Shares Repurchased",
        "terseLabel": "Share repurchased (in shares)"
       }
      }
     },
     "localname": "StockRepurchaseProgramAggregateNumberofSharesRepurchased",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "cgnx_StockRepurchaseProgramValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Stock Repurchase Program, Value",
        "label": "Stock Repurchase Program, Value",
        "terseLabel": "Shares repurchased, value"
       }
      }
     },
     "localname": "StockRepurchaseProgramValue",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_SualabMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Sualab",
        "label": "Sualab [Member]",
        "terseLabel": "Sualab [Member]"
       }
      }
     },
     "localname": "SualabMember",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_TaxyearsopentoexaminationbyInternalRevenueService": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tax years open to examination by Internal Revenue Service",
        "label": "Tax years open to examination by Internal Revenue Service",
        "terseLabel": "Tax years open to examination by Internal Revenue Service"
       }
      }
     },
     "localname": "TaxyearsopentoexaminationbyInternalRevenueService",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets as a result of net operating loss carryforward, a similar tax loss, or a tax credit carryforward.",
        "label": "Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets",
        "terseLabel": "Reserve for income taxes classified an noncurrent deferred tax assets"
       }
      }
     },
     "localname": "Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets",
     "nsuri": "http://www.cognex.com/20200628",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "country_CN": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "CHINA",
        "terseLabel": "Greater China"
       }
      }
     },
     "localname": "CN",
     "nsuri": "http://xbrl.sec.gov/country/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_AllCurrenciesDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "All Currencies [Domain]",
        "terseLabel": "All Currencies [Domain]"
       }
      }
     },
     "localname": "AllCurrenciesDomain",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_CAD": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Canada, Dollars",
        "terseLabel": "Canada, Dollars"
       }
      }
     },
     "localname": "CAD",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_EUR": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Euro Member Countries, Euro",
        "terseLabel": "Euro Member Countries, Euro"
       }
      }
     },
     "localname": "EUR",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_GBP": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "United Kingdom, Pounds",
        "terseLabel": "United Kingdom, Pounds"
       }
      }
     },
     "localname": "GBP",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_HUF": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Hungary, Forint",
        "terseLabel": "Hungary, Forint"
       }
      }
     },
     "localname": "HUF",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_JPY": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Japan, Yen",
        "terseLabel": "Japanese Yen"
       }
      }
     },
     "localname": "JPY",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_KRW": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Korea (South), Won",
        "terseLabel": "Korean Won"
       }
      }
     },
     "localname": "KRW",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_MXN": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Mexico, Pesos",
        "terseLabel": "Mexico, Pesos"
       }
      }
     },
     "localname": "MXN",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_SGD": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Singapore, Dollars",
        "terseLabel": "Singapore, Dollars"
       }
      }
     },
     "localname": "SGD",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_TWD": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Taiwan, New Dollars",
        "terseLabel": "Taiwanese Dollar"
       }
      }
     },
     "localname": "TWD",
     "nsuri": "http://xbrl.sec.gov/currency/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag",
        "terseLabel": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code",
        "terseLabel": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover [Abstract]",
        "terseLabel": "Cover [Abstract]"
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "xbrltype": "stringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date",
        "terseLabel": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Document Fiscal Period Focus",
        "terseLabel": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This is focus fiscal year of the document report in CCYY 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.",
        "label": "Document Fiscal Year Focus",
        "terseLabel": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented.  If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.",
        "label": "Document Period End Date",
        "terseLabel": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentQuarterlyReport": {
     "auth_ref": [
      "r595"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an quarterly report.",
        "label": "Document Quarterly Report",
        "terseLabel": "Document Quarterly Report"
       }
      }
     },
     "localname": "DocumentQuarterlyReport",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r596"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report",
        "terseLabel": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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'.",
        "label": "Document Type",
        "terseLabel": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name",
        "label": "Entity Address, Address Line One",
        "terseLabel": "Entity Address, Address Line One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town",
        "terseLabel": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code",
        "terseLabel": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province",
        "terseLabel": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key",
        "terseLabel": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Entity Common Stock, Shares Outstanding",
        "terseLabel": "Entity Common Stock, Shares Outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Entity Current Reporting Status",
        "terseLabel": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company",
        "terseLabel": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Entity File Number",
        "terseLabel": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Entity Filer Category",
        "terseLabel": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryCode": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Two-character EDGAR code representing the state or country of incorporation.",
        "label": "Entity Incorporation, State or Country Code",
        "terseLabel": "Entity Incorporation, State or Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r598"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Entity Interactive Data Current",
        "terseLabel": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name",
        "terseLabel": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company",
        "terseLabel": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business",
        "terseLabel": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r597"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
        "label": "Entity Tax Identification Number",
        "terseLabel": "Entity Tax Identification Number"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number",
        "terseLabel": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r593"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security",
        "terseLabel": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r594"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name",
        "terseLabel": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol",
        "terseLabel": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.cognex.com/role/CoverPage"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "srt_AmericasMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Americas [Member]",
        "terseLabel": "Americas"
       }
      }
     },
     "localname": "AmericasMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_CurrencyAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Currency [Axis]",
        "terseLabel": "Currency [Axis]"
       }
      }
     },
     "localname": "CurrencyAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_EuropeMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Europe [Member]",
        "terseLabel": "Europe"
       }
      }
     },
     "localname": "EuropeMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r311",
      "r313",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r510",
      "r549",
      "r552"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Maximum [Member]",
        "terseLabel": "Maximum"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r311",
      "r313",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r510",
      "r549",
      "r552"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Minimum [Member]",
        "terseLabel": "Minimum"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ProductOrServiceAxis": {
     "auth_ref": [
      "r152",
      "r284",
      "r287",
      "r511",
      "r548",
      "r550"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Product and Service [Axis]",
        "terseLabel": "Product and Service [Axis]"
       }
      }
     },
     "localname": "ProductOrServiceAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ProductsAndServicesDomain": {
     "auth_ref": [
      "r152",
      "r284",
      "r287",
      "r511",
      "r548",
      "r550"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Product and Service [Domain]",
        "terseLabel": "Product and Service [Domain]"
       }
      }
     },
     "localname": "ProductsAndServicesDomain",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r301",
      "r311",
      "r313",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r510",
      "r549",
      "r552"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statistical Measurement [Axis]",
        "terseLabel": "Statistical Measurement [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r301",
      "r311",
      "r313",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r510",
      "r549",
      "r552"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statistical Measurement [Domain]",
        "terseLabel": "Statistical Measurement [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r153",
      "r154",
      "r284",
      "r288",
      "r551",
      "r583",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Geographical [Domain]",
        "terseLabel": "Geographical [Domain]"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r153",
      "r154",
      "r284",
      "r288",
      "r551",
      "r582",
      "r583",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591"
     ],
     "lang": {
      "en-US": {
       "role": {
        "label": "Geographical [Axis]",
        "terseLabel": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Accounting Policies [Abstract]",
        "terseLabel": "Accounting Policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r35"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Accounts Payable, Current",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": {
     "auth_ref": [
      "r201"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Schedule of Allowance for Credit Loss Activity"
       }
      }
     },
     "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r3",
      "r15",
      "r157",
      "r158"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "terseLabel": "Accounts receivable, less reserves of $2,235 and $1,821 in 2020 and 2019, respectively"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Accretion (Amortization) of Discounts and Premiums, Investments",
        "negatedLabel": "Amortization of discounts or premiums on investments"
       }
      }
     },
     "localname": "AccretionAmortizationOfDiscountsAndPremiumsInvestments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxes": {
     "auth_ref": [
      "r11",
      "r12",
      "r371",
      "r522",
      "r536"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.  This amount is the total of current and noncurrent accrued income taxes.",
        "label": "Accrued Income Taxes",
        "terseLabel": "Non-current accrued income taxes"
       }
      }
     },
     "localname": "AccruedIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "auth_ref": [
      "r11",
      "r522",
      "r537"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Accrued Income Taxes, Current",
        "terseLabel": "Accrued income taxes"
       }
      }
     },
     "localname": "AccruedIncomeTaxesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r37"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Accrued Liabilities, Current",
        "terseLabel": "Accrued expenses"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r18",
      "r56",
      "r58",
      "r59",
      "r538",
      "r560",
      "r564"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "terseLabel": "Accumulated other comprehensive loss, net of tax"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r55",
      "r59",
      "r62",
      "r100",
      "r101",
      "r102",
      "r409",
      "r555",
      "r556"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "AOCI Attributable to Parent [Member]",
        "terseLabel": "Accumulated Other Comprehensive Loss"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r16"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Additional Paid in Capital, Common Stock",
        "terseLabel": "Additional paid-in capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r100",
      "r101",
      "r102",
      "r353",
      "r354",
      "r355"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Additional Paid-in Capital [Member]",
        "terseLabel": "Additional Paid-in Capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "auth_ref": [
      "r105",
      "r106",
      "r107",
      "r109",
      "r187",
      "r188",
      "r189",
      "r190",
      "r193",
      "r194",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r354",
      "r355",
      "r357",
      "r379",
      "r380",
      "r381",
      "r382",
      "r513",
      "r514",
      "r515",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by amendment to accounting standards.",
        "label": "Accounting Standards Update [Axis]",
        "terseLabel": "Accounting Standards Update [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r314",
      "r316",
      "r360",
      "r361"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.",
        "label": "APIC, Share-based Payment Arrangement, Increase for Cost Recognition",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r316",
      "r345",
      "r359"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "Share-based Payment Arrangement, Expense",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r160",
      "r195",
      "r197",
      "r200"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss",
        "periodEndLabel": "Balance as of June 28, 2020",
        "periodStartLabel": "Balance as of December 31, 2019"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "auth_ref": [
      "r22",
      "r160",
      "r195"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "terseLabel": "Reserves for accounts receivable"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]",
        "terseLabel": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "auth_ref": [
      "r199"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "negatedTerseLabel": "Write-offs"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r89",
      "r229",
      "r234"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Amortization of Intangible Assets",
        "terseLabel": "Amortization of intangible assets"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r128"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "terseLabel": "Anti-dilutive securities excluded from computation of earnings per share (shares)"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "auth_ref": [
      "r128"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of antidilutive security.",
        "label": "Antidilutive Securities [Axis]",
        "terseLabel": "Antidilutive Securities [Axis]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r128"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Antidilutive Securities, Name [Domain]",
        "terseLabel": "Antidilutive Securities, Name [Domain]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AssetBackedSecuritiesMember": {
     "auth_ref": [
      "r177",
      "r302"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Asset-backed Securities [Member]",
        "terseLabel": "Asset-Backed Securities"
       }
      }
     },
     "localname": "AssetBackedSecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r96",
      "r141",
      "r144",
      "r150",
      "r186",
      "r406",
      "r410",
      "r445",
      "r521",
      "r535"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Assets",
        "totalLabel": "Total assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Assets [Abstract]",
        "terseLabel": "ASSETS"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r4",
      "r5",
      "r43",
      "r96",
      "r186",
      "r406",
      "r410",
      "r445"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Assets, Current",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Assets, Current [Abstract]",
        "terseLabel": "Current assets:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsFairValueDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Assets, Fair Value Disclosure [Abstract]",
        "terseLabel": "Assets:"
       }
      }
     },
     "localname": "AssetsFairValueDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "auth_ref": [
      "r171"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-sale, Accumulated Gross Unrealized Gain, before Tax",
        "terseLabel": "Gross unrealized gains"
       }
      }
     },
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "auth_ref": [
      "r172"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-sale, Accumulated Gross Unrealized Loss, before Tax",
        "negatedTerseLabel": "Gross unrealized losses"
       }
      }
     },
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "auth_ref": [
      "r168",
      "r206"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-sale, Amortized Cost",
        "totalLabel": "Amortized cost"
       }
      }
     },
     "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "auth_ref": [
      "r173",
      "r175",
      "r532"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "terseLabel": "1 year or less"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "auth_ref": [
      "r165",
      "r169",
      "r206",
      "r524"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).",
        "label": "Debt Securities, Available-for-sale",
        "terseLabel": "Financial assets at fair value",
        "totalLabel": "Fair value",
        "verboseLabel": "Fair value"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent": {
     "auth_ref": [
      "r166",
      "r206"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails": {
       "order": 2.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      },
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Current",
        "terseLabel": "Current investments, amortized cost of $141,874 and $235,610 in 2020 and 2019, respectively, allowance for expected credit losses of $0 in 2020 and 2019"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent": {
     "auth_ref": [
      "r166",
      "r206"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Noncurrent",
        "terseLabel": "Long-term investments"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesGrossRealizedGains": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents the gross profit realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.",
        "label": "Available-for-sale Securities, Gross Realized Gains",
        "terseLabel": "Gross realized gains on sale of investments"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesGrossRealizedGains",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesGrossRealizedLosses": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This item represents the gross loss realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities.",
        "label": "Available-for-sale Securities, Gross Realized Losses",
        "terseLabel": "Gross realized losses on sale of investments"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesGrossRealizedLosses",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r317",
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by location on balance sheet (statement of financial position).",
        "label": "Balance Sheet Location [Axis]",
        "terseLabel": "Balance Sheet Location [Axis]"
       }
      }
     },
     "localname": "BalanceSheetLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "auth_ref": [
      "r420",
      "r424"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Location in the balance sheet (statement of financial position).",
        "label": "Balance Sheet Location [Domain]",
        "terseLabel": "Balance Sheet Location [Domain]"
       }
      }
     },
     "localname": "BalanceSheetLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [
      "r310",
      "r312"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Business Acquisition, Acquiree [Domain]",
        "terseLabel": "Business Acquisition, Acquiree [Domain]"
       }
      }
     },
     "localname": "BusinessAcquisitionAcquireeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r310",
      "r312",
      "r394",
      "r395"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by business combination or series of individually immaterial business combinations.",
        "label": "Business Acquisition [Axis]",
        "terseLabel": "Business Acquisition [Axis]"
       }
      }
     },
     "localname": "BusinessAcquisitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "auth_ref": [
      "r88",
      "r403"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.",
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability",
        "terseLabel": "Revaluation of contingent consideration"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow": {
     "auth_ref": [
      "r402"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "For contingent consideration arrangements and indemnification assets recognized in connection with a business combination, this element represents an estimate of the low-end of the potential range (undiscounted) of the consideration which may be paid.",
        "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low",
        "terseLabel": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, Low"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueLow",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "auth_ref": [
      "r399",
      "r400",
      "r401"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.",
        "label": "Business Combination, Contingent Consideration, Liability",
        "terseLabel": "Contingent consideration liabilities"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "auth_ref": [
      "r396"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill",
        "terseLabel": "Intangible assets acquired"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedContractCostGross": {
     "auth_ref": [
      "r222"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, before accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.",
        "label": "Capitalized Contract Cost, Gross",
        "terseLabel": "Costs to fulfill contract"
       }
      }
     },
     "localname": "CapitalizedContractCostGross",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Cash": {
     "auth_ref": [
      "r32",
      "r565",
      "r566"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Cash",
        "terseLabel": "Cash"
       }
      }
     },
     "localname": "Cash",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Cash and Cash Equivalents [Abstract]",
        "terseLabel": "Cash and Cash Equivalents [Abstract]"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r1",
      "r32",
      "r91"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails": {
       "order": 1.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      },
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "terseLabel": "Cash and cash equivalents",
        "totalLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Cash and Cash Equivalents [Line Items]",
        "terseLabel": "Cash and Cash Equivalents [Line Items]"
       }
      }
     },
     "localname": "CashAndCashEquivalentsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r8",
      "r92",
      "r94"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "terseLabel": "Cash, Cash Equivalents, and Investments"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r86",
      "r91",
      "r93"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents",
        "periodEndLabel": "Cash and cash equivalents at end of period",
        "periodStartLabel": "Cash and cash equivalents at beginning of period"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r86",
      "r452"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "Net change in cash and cash equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CertificatesOfDepositMember": {
     "auth_ref": [
      "r534"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Short to medium-term investment available at banks and savings and loan institutions where a customer agrees to lend money to the institution for a certain amount of time and is paid a predetermined rate of interest. Certificates of deposit (CD) are typically Federal Deposit Insurance Corporation (FDIC) insured.",
        "label": "Certificates of Deposit [Member]",
        "terseLabel": "Certificate of deposit"
       }
      }
     },
     "localname": "CertificatesOfDepositMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfTreasuryStockTable": {
     "auth_ref": [
      "r268",
      "r269",
      "r270",
      "r271"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock.",
        "label": "Class of Treasury Stock [Table]",
        "terseLabel": "Class of Treasury Stock [Table]"
       }
      }
     },
     "localname": "ClassOfTreasuryStockTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommonStockDividendsPerShareCashPaid": {
     "auth_ref": [
      "r267"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Aggregate dividends paid during the period for each share of common stock outstanding.",
        "label": "Common Stock, Dividends, Per Share, Cash Paid",
        "terseLabel": "Cash dividends per common share (usd per share)"
       }
      }
     },
     "localname": "CommonStockDividendsPerShareCashPaid",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r100",
      "r101"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock [Member]",
        "terseLabel": "Common Stock"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r14"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common Stock, Par or Stated Value Per Share",
        "verboseLabel": "Common stock, par value"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r14"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.",
        "label": "Common Stock, Shares Authorized",
        "terseLabel": "Common stock, shares authorized"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r14"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Common Stock, Shares, Issued",
        "periodEndLabel": "Ending Balance (in shares)",
        "periodStartLabel": "Beginning Balance (in shares)",
        "terseLabel": "Common stock, shares issued"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValueOutstanding": {
     "auth_ref": [
      "r14"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Common Stock, Value, Outstanding",
        "terseLabel": "Common stock, $.002 par value \u2013 Authorized: 300,000 shares in 2020 and 2019, respectively, issued and outstanding: 173,047 and 172,440 shares in 2020 and 2019, respectively"
       }
      }
     },
     "localname": "CommonStockValueOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CompensationRelatedCostsGeneralTextBlock": {
     "auth_ref": [
      "r299",
      "r300"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for compensation costs, including compensated absences accruals, compensated absences liability, deferred compensation arrangements and income statement compensation items.  Deferred compensation arrangements may include a description of an arrangement with an individual employee, which is generally an employment contract between the entity and a selected officer or key employee containing a promise by the employer to pay certain amounts at designated future dates, usually including a period after retirement, upon compliance with stipulated requirements. This type of arrangement is distinguished from broader based employee benefit plans as it is usually tailored to the employee. Disclosure also typically includes the amount of related compensation expense recognized during the reporting period, the number of shares (units) issued during the period under such arrangements, and the carrying amount as of the balance sheet date of the related liability.",
        "label": "Compensation Related Costs, General [Text Block]",
        "terseLabel": "Stock-Based Compensation Expense"
       }
      }
     },
     "localname": "CompensationRelatedCostsGeneralTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpense"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "auth_ref": [
      "r65",
      "r67",
      "r68",
      "r71",
      "r527",
      "r545"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "totalLabel": "Total comprehensive income"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent [Abstract]",
        "terseLabel": "Other comprehensive income, net of tax:"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTaxAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ContractTerminationMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Termination of a contract associated with exit from or disposal of business activities or restructurings pursuant to a plan.",
        "label": "Contract Termination [Member]",
        "terseLabel": "Contract termination costs",
        "verboseLabel": "Contract Termination Costs"
       }
      }
     },
     "localname": "ContractTerminationMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r273",
      "r274",
      "r285"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Contract with Customer, Liability, Current",
        "terseLabel": "Deferred revenue and customer deposits"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CorporateBondSecuritiesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Corporate Bond Securities [Member]",
        "terseLabel": "Corporate Bonds"
       }
      }
     },
     "localname": "CorporateBondSecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "auth_ref": [
      "r75",
      "r511"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Cost of Goods and Services Sold",
        "terseLabel": "Cost of revenue"
       }
      }
     },
     "localname": "CostOfGoodsAndServicesSold",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfGoodsTotalMember": {
     "auth_ref": [
      "r137"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Cost of product sold and service rendered, when it serves as benchmark in concentration of risk calculation.",
        "label": "Cost of Goods and Service Benchmark [Member]",
        "terseLabel": "Cost of Revenue"
       }
      }
     },
     "localname": "CostOfGoodsTotalMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss": {
     "auth_ref": [
      "r170",
      "r206",
      "r214",
      "r217"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-sale, Allowance for Credit Loss",
        "periodEndLabel": "Balance as of June 28, 2020",
        "periodStartLabel": "Balance as of December 31, 2019"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery": {
     "auth_ref": [
      "r216"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase in 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), from recovery.",
        "label": "Debt Securities, Available-for-sale, Allowance for Credit Loss, Recovery",
        "negatedLabel": "Decreases to the allowance for credit losses",
        "terseLabel": "Gross recoveries"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossRecovery",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Debt Securities, Available-for-sale, Allowance for Credit Loss [Roll Forward]",
        "terseLabel": "Debt Securities, Available-for-sale, Allowance for Credit Loss [Roll Forward]"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock": {
     "auth_ref": [
      "r218"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure 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).",
        "label": "Debt Securities, Available-for-sale, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Schedule of Allowance for Credit Loss Activity"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff": {
     "auth_ref": [
      "r215"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of writeoff 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).",
        "label": "Debt Securities, Available-for-sale, Allowance for Credit Loss, Writeoff",
        "terseLabel": "Write-offs"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal": {
     "auth_ref": [
      "r207",
      "r213"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), from change in present value of expected cash flows.",
        "label": "Debt Securities, Available-for-sale, Change in Present Value, Expense (Reversal)",
        "terseLabel": "Increases to the allowance for credit losses",
        "verboseLabel": "Gross credit losses recorded"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleChangeInPresentValueExpenseReversal",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger": {
     "auth_ref": [
      "r182",
      "r211",
      "r219"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Continuous Unrealized Loss Position, 12 Months or Longer",
        "terseLabel": "Fair value, 12 months or greater"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "auth_ref": [
      "r182",
      "r211"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "negatedLabel": "Unrealized losses, 12 months or greater"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months": {
     "auth_ref": [
      "r182",
      "r211",
      "r219"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Continuous Unrealized Loss Position, Less than 12 Months",
        "terseLabel": "Fair value, less than 12 months"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "auth_ref": [
      "r182",
      "r211"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "negatedLabel": "Unrealized losses, less than 12 months"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition": {
     "auth_ref": [
      "r179",
      "r208",
      "r219"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Unrealized Loss Position",
        "totalLabel": "Total fair value"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss": {
     "auth_ref": [
      "r180",
      "r209"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale, Unrealized Loss Position, Accumulated Loss",
        "totalLabel": "Total unrealized losses"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "auth_ref": [
      "r364",
      "r365"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.",
        "label": "Deferred Income Tax Assets, Net",
        "terseLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r364",
      "r365"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.",
        "label": "Deferred Income Tax Liabilities, Net",
        "terseLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenue": {
     "auth_ref": [
      "r23"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.",
        "label": "Deferred Revenue",
        "periodEndLabel": "Balance as of June 28, 2020",
        "periodStartLabel": "Balance as of December 31, 2019"
       }
      }
     },
     "localname": "DeferredRevenue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenueAdditions": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred revenue recognized for transactions arising during the current reporting period. Deferred revenue is a liability as of the balance sheet date related to a revenue producing activity for which revenue has not yet been recognized. Generally, an Entity records deferred revenue when it receives consideration from a customer before achieving certain criteria that must be met for revenue to be recognized in conformity with GAAP.",
        "label": "Deferred Revenue, Additions",
        "terseLabel": "Increases to deferred revenue and customer deposits"
       }
      }
     },
     "localname": "DeferredRevenueAdditions",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenueByArrangementDisclosureTextBlock": {
     "auth_ref": [
      "r6"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the type of arrangements and the corresponding amounts that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date.",
        "label": "Deferred Revenue, by Arrangement, Disclosure [Table Text Block]",
        "terseLabel": "Deferred Revenue, by Arrangement, Disclosure"
       }
      }
     },
     "localname": "DeferredRevenueByArrangementDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DeferredRevenueRevenueRecognized1": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of revenue recognized that was previously reported as deferred or unearned revenue.",
        "label": "Deferred Revenue, Revenue Recognized",
        "negatedTerseLabel": "Recognition of revenue"
       }
      }
     },
     "localname": "DeferredRevenueRevenueRecognized1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments": {
     "auth_ref": [
      "r376",
      "r377"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from severance costs.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Severance Payments",
        "terseLabel": "Credits related to grants cancelled"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r89",
      "r239"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 21.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Depreciation",
        "terseLabel": "Depreciation of property, plant, and equipment"
       }
      }
     },
     "localname": "Depreciation",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset": {
     "auth_ref": [
      "r45",
      "r412"
     ],
     "calculation": {
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of obligation to return cash collateral under master netting arrangements offset against derivative assets.",
        "label": "Derivative Asset, Collateral, Obligation to Return Cash, Offset",
        "negatedTerseLabel": "Gross amounts offset"
       }
      }
     },
     "localname": "DerivativeAssetCollateralObligationToReturnCashOffset",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssetNotionalAmount": {
     "auth_ref": [
      "r414",
      "r415",
      "r417"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Nominal or face amount used to calculate payments on the derivative asset.",
        "label": "Derivative Asset, Notional Amount",
        "terseLabel": "Outstanding forward contracts"
       }
      }
     },
     "localname": "DerivativeAssetNotionalAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssets": {
     "auth_ref": [
      "r46",
      "r49",
      "r444"
     ],
     "calculation": {
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Asset",
        "terseLabel": "Derivative asset",
        "totalLabel": "Net amount of assets presented"
       }
      }
     },
     "localname": "DerivativeAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeFairValueOfDerivativeAsset": {
     "auth_ref": [
      "r44",
      "r50",
      "r423",
      "r492"
     ],
     "calculation": {
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Asset, Fair Value, Gross Asset",
        "verboseLabel": "Gross amounts of recognized assets"
       }
      }
     },
     "localname": "DerivativeFairValueOfDerivativeAsset",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeFairValueOfDerivativeLiability": {
     "auth_ref": [
      "r44",
      "r50",
      "r423",
      "r492"
     ],
     "calculation": {
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Liability, Fair Value, Gross Liability",
        "verboseLabel": "Gross amounts of recognized liabilities"
       }
      }
     },
     "localname": "DerivativeFairValueOfDerivativeLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeGainLossOnDerivativeNet": {
     "auth_ref": [
      "r422"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in the fair value of derivatives recognized in the income statement.",
        "label": "Derivative, Gain (Loss) on Derivative, Net",
        "terseLabel": "Gains (losses) recognized in current operations"
       }
      }
     },
     "localname": "DerivativeGainLossOnDerivativeNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Derivative Instruments and Hedging Activities Disclosure [Abstract]",
        "terseLabel": "Derivative Instruments and Hedging Activities Disclosure [Abstract]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": {
     "auth_ref": [
      "r434"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]",
        "terseLabel": "Derivative Instruments"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstruments"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Instruments and Hedging Activities Disclosures [Line Items]",
        "terseLabel": "Derivative Instruments and Hedging Activities Disclosures [Line Items]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about derivatives and hedging activities.",
        "label": "Derivative Instruments and Hedging Activities Disclosures [Table]",
        "terseLabel": "Derivative Instruments and Hedging Activities Disclosures [Table]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": {
     "auth_ref": [
      "r418",
      "r421",
      "r426",
      "r428",
      "r429",
      "r432",
      "r433"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Instruments, Gain (Loss) [Table]",
        "terseLabel": "Derivative Instruments, Gain (Loss) [Table]"
       }
      }
     },
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsGainLossLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Instruments, Gain (Loss) [Line Items]",
        "terseLabel": "Derivative Instruments, Gain (Loss) [Line Items]"
       }
      }
     },
     "localname": "DerivativeInstrumentsGainLossLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeLiabilities": {
     "auth_ref": [
      "r46",
      "r49",
      "r444"
     ],
     "calculation": {
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Liability",
        "terseLabel": "Derivative liability",
        "totalLabel": "Net amount of liabilities presented"
       }
      }
     },
     "localname": "DerivativeLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset": {
     "auth_ref": [
      "r45",
      "r412"
     ],
     "calculation": {
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of right to receive cash collateral under master netting arrangements offset against derivative liabilities.",
        "label": "Derivative Liability, Collateral, Right to Reclaim Cash, Offset",
        "negatedTerseLabel": "Gross amounts offset"
       }
      }
     },
     "localname": "DerivativeLiabilityCollateralRightToReclaimCashOffset",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOffsettingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative [Line Items]",
        "terseLabel": "Derivative [Line Items]"
       }
      }
     },
     "localname": "DerivativeLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeTable": {
     "auth_ref": [
      "r413",
      "r416",
      "r417",
      "r418",
      "r419",
      "r425",
      "r426",
      "r430",
      "r431",
      "r433"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative [Table]",
        "terseLabel": "Derivative [Table]"
       }
      }
     },
     "localname": "DerivativeTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativesFairValueLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivatives, Fair Value [Line Items]",
        "terseLabel": "Derivatives, Fair Value [Line Items]"
       }
      }
     },
     "localname": "DerivativesFairValueLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "auth_ref": [
      "r398"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property.",
        "label": "Developed Technology Rights [Member]",
        "terseLabel": "Completed technologies"
       }
      }
     },
     "localname": "DevelopedTechnologyRightsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Disaggregation of Revenue [Line Items]",
        "terseLabel": "Disaggregation of Revenue [Line Items]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "auth_ref": [
      "r284",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r293"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Disaggregation of Revenue [Table]",
        "terseLabel": "Disaggregation of Revenue [Table]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Share-based Payment Arrangement [Abstract]",
        "terseLabel": "Share-based Payment Arrangement [Abstract]"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DistributionRightsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Legal rights, generally of a limited duration, to distribute a product or products, often within specific geographic areas or supply channels.",
        "label": "Distribution Rights [Member]",
        "terseLabel": "Distribution networks"
       }
      }
     },
     "localname": "DistributionRightsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Dividends": {
     "auth_ref": [
      "r267",
      "r533"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of paid and unpaid cash, stock, and paid-in-kind (PIK) dividends declared, for example, but not limited to, common and preferred stock.",
        "label": "Dividends",
        "terseLabel": "Dividends (in dollars per share)"
       }
      }
     },
     "localname": "Dividends",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DividendsCash": {
     "auth_ref": [
      "r267",
      "r533"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of paid and unpaid cash dividends declared for classes of stock, for example, but not limited to, common and preferred.",
        "label": "Dividends, Cash",
        "negatedTerseLabel": "Payment of dividends"
       }
      }
     },
     "localname": "DividendsCash",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DomesticCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.",
        "label": "Domestic Tax Authority [Member]",
        "terseLabel": "Domestic Tax Authority"
       }
      }
     },
     "localname": "DomesticCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Earnings Per Share [Abstract]",
        "terseLabel": "Earnings Per Share [Abstract]"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r72",
      "r110",
      "r111",
      "r112",
      "r113",
      "r114",
      "r123",
      "r125",
      "r126",
      "r127",
      "r132",
      "r133",
      "r528",
      "r546"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Earnings Per Share, Diluted",
        "terseLabel": "Diluted (usd per share)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareDilutedAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Earnings Per Share, Diluted [Abstract]",
        "terseLabel": "Net income (loss) per weighted-average common and common-equivalent share:"
       }
      }
     },
     "localname": "EarningsPerShareDilutedAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r128",
      "r130",
      "r131",
      "r134"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Earnings Per Share [Text Block]",
        "terseLabel": "Weighted-Average Shares"
       }
      }
     },
     "localname": "EarningsPerShareTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageShares"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r452"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents",
        "terseLabel": "Effect of foreign exchange rate changes on cash and cash equivalents"
       }
      }
     },
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r367"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "totalLabel": "Income tax expense"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r367",
      "r388"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "terseLabel": "Income tax expense (benefit) at U.S. federal statutory corporate tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails",
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate": {
     "auth_ref": [
      "r367",
      "r388"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the income tax rates.",
        "label": "Effective Income Tax Rate Reconciliation, Change in Enacted Tax Rate, Percent",
        "negatedTerseLabel": "Discrete tax expense related to tax return filings",
        "terseLabel": "Discrete tax expense related to tax return filings (as a percent)"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails",
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": {
     "auth_ref": [
      "r367",
      "r388"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to statutory income tax expense (benefit) outside of the country of domicile.",
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent",
        "negatedLabel": "Decrease in effective tax rate",
        "terseLabel": "Foreign tax rate differential"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails",
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": {
     "auth_ref": [
      "r367",
      "r388"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Percent",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationOtherAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent": {
     "auth_ref": [
      "r362",
      "r367"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-based Payment Arrangement, Percent",
        "negatedTerseLabel": "Discrete tax benefit related to stock options",
        "terseLabel": "Decrease in effective tax rate for difference between deduction for tax purposes and compensation cost recognized from stock option exercises"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails",
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r367",
      "r388"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent",
        "terseLabel": "State income taxes, net of federal benefit"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits": {
     "auth_ref": [
      "r367",
      "r388"
     ],
     "calculation": {
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Percent",
        "negatedTerseLabel": "Tax credit"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxCredits",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesReconciliationofUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]",
        "terseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "auth_ref": [
      "r346"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.",
        "label": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount",
        "terseLabel": "Unrecognized compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "auth_ref": [
      "r345"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.",
        "label": "Share-based Payment Arrangement, Expense, Tax Benefit",
        "terseLabel": "Tax benefit from compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [
      "r343"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Payment Arrangement, Option [Member]",
        "terseLabel": "Employee Stock Option"
       }
      }
     },
     "localname": "EmployeeStockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EntityWideInformationRevenueFromExternalCustomerLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Revenue from External Customer [Line Items]",
        "terseLabel": "Revenue from External Customer [Line Items]"
       }
      }
     },
     "localname": "EntityWideInformationRevenueFromExternalCustomerLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Equity [Abstract]",
        "terseLabel": "Equity [Abstract]"
       }
      }
     },
     "localname": "EquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityClassOfTreasuryStockLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Equity, Class of Treasury Stock [Line Items]",
        "terseLabel": "Equity, Class of Treasury Stock [Line Items]"
       }
      }
     },
     "localname": "EquityClassOfTreasuryStockLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r100",
      "r101",
      "r102",
      "r106",
      "r115",
      "r117",
      "r136",
      "r190",
      "r266",
      "r267",
      "r353",
      "r354",
      "r355",
      "r381",
      "r382",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r459",
      "r555",
      "r556",
      "r557"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.",
        "label": "Equity Component [Domain]",
        "terseLabel": "Equity Component [Domain]"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "auth_ref": [
      "r435",
      "r436",
      "r437",
      "r442"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.",
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "terseLabel": "Fair Value, Recurring and Nonrecurring [Table]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "auth_ref": [
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r436",
      "r482",
      "r483",
      "r484"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.",
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "terseLabel": "Fair Value Hierarchy and NAV [Axis]"
       }
      }
     },
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "auth_ref": [
      "r435",
      "r436",
      "r438",
      "r439",
      "r443"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by measurement frequency.",
        "label": "Measurement Frequency [Axis]",
        "terseLabel": "Measurement Frequency [Axis]"
       }
      }
     },
     "localname": "FairValueByMeasurementFrequencyAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]",
        "terseLabel": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "localname": "FairValueDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r441"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Fair Value Disclosures [Text Block]",
        "terseLabel": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "auth_ref": [
      "r302",
      "r303",
      "r308",
      "r309",
      "r436",
      "r482"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.",
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "terseLabel": "Quoted Prices in Active Markets for Identical Assets (Level 1)"
       }
      }
     },
     "localname": "FairValueInputsLevel1Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "auth_ref": [
      "r302",
      "r303",
      "r308",
      "r309",
      "r436",
      "r483"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "terseLabel": "Significant Other Observable Inputs (Level 2)"
       }
      }
     },
     "localname": "FairValueInputsLevel2Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "auth_ref": [
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r436",
      "r484"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "terseLabel": "Fair Value, Inputs, Level 3"
       }
      }
     },
     "localname": "FairValueInputsLevel3Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "auth_ref": [
      "r440",
      "r442"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.",
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "terseLabel": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Measurement frequency.",
        "label": "Measurement Frequency [Domain]",
        "terseLabel": "Measurement Frequency [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementFrequencyDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "auth_ref": [
      "r440"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value",
        "terseLabel": "Business Combination, Contingent Consideration, Liability"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "auth_ref": [
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r482",
      "r483",
      "r484"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "terseLabel": "Fair Value Hierarchy and NAV [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "auth_ref": [
      "r441",
      "r443"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Fair Value, Recurring [Member]",
        "terseLabel": "Fair Value, Measurements, Recurring"
       }
      }
     },
     "localname": "FairValueMeasurementsRecurringMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": {
     "auth_ref": [
      "r420",
      "r425",
      "r432"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]",
        "terseLabel": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]"
       }
      }
     },
     "localname": "FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FinancialInstrumentAxis": {
     "auth_ref": [
      "r177",
      "r178",
      "r196",
      "r201",
      "r202",
      "r203",
      "r204",
      "r210",
      "r212",
      "r218",
      "r219",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of financial instrument.",
        "label": "Financial Instrument [Axis]",
        "terseLabel": "Financial Instrument [Axis]"
       }
      }
     },
     "localname": "FinancialInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery": {
     "auth_ref": [
      "r201",
      "r205"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after recovery, of writeoff of financing receivable, charged against allowance for credit loss.",
        "label": "Financing Receivable, Allowance for Credit Loss, Writeoff, after Recovery",
        "terseLabel": "Credit loss on investments"
       }
      }
     },
     "localname": "FinancingReceivableAllowanceForCreditLossWriteoffAfterRecovery",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r233"
     ],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails_1": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "terseLabel": "Accumulated Amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after 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).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five",
        "verboseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r235"
     ],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "terseLabel": "2021"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year",
        "verboseLabel": "Remainder of fiscal 2020"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r235"
     ],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r235"
     ],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r235"
     ],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r235"
     ],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r230",
      "r231",
      "r233",
      "r236",
      "r512",
      "r519"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by major type or class of finite-lived intangible assets.",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]",
        "terseLabel": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r233",
      "r519"
     ],
     "calculation": {
      "http://www.cognex.com/role/IntangibleAssetsDetails_1": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Gross",
        "terseLabel": "Gross Carrying Value"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Distribution Rights, Developed Technology Rights, Customer Contracts And Relationships, Other Intangible Assets, And Trademarks"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r230",
      "r232"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r233",
      "r512"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      },
      "http://www.cognex.com/role/IntangibleAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.cognex.com/role/IntangibleAssetsDetails_1": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Net",
        "terseLabel": "Intangible assets, net",
        "totalLabel": "Net Carrying Value"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Designated tax departments of governments entitled to levy and collect income taxes from the entity outside the entity's country of domicile.",
        "label": "Foreign Tax Authority [Member]",
        "terseLabel": "Foreign Tax Authority"
       }
      }
     },
     "localname": "ForeignCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ForeignCurrencyContractAssetFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Foreign Currency Contract, Asset, Fair Value Disclosure",
        "terseLabel": "Economic hedge forward contracts"
       }
      }
     },
     "localname": "ForeignCurrencyContractAssetFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Foreign Currency Contracts, Liability, Fair Value Disclosure",
        "terseLabel": "Economic hedge forward contracts"
       }
      }
     },
     "localname": "ForeignCurrencyContractsLiabilityFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyGainLossMember": {
     "auth_ref": [
      "r427"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption encompassing foreign currency gain (loss).",
        "label": "Foreign Currency Gain (Loss) [Member]",
        "terseLabel": "Foreign Currency Gain (Loss)"
       }
      }
     },
     "localname": "ForeignCurrencyGainLossMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "auth_ref": [
      "r446",
      "r448",
      "r449",
      "r451"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.",
        "label": "Foreign Currency Transaction Gain (Loss), before Tax",
        "terseLabel": "Foreign currency gain (loss)"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionGainLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainLossOnSaleOfInvestments": {
     "auth_ref": [
      "r89"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Gain (Loss) on Sale of Investments",
        "negatedLabel": "Realized gain on sale of investments"
       }
      }
     },
     "localname": "GainLossOnSaleOfInvestments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r223",
      "r224",
      "r520"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Goodwill",
        "periodEndLabel": "Balance as of December 31, 2019",
        "periodStartLabel": "Balance as of December 31, 2019",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/GoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]",
        "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "auth_ref": [
      "r228"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for goodwill.",
        "label": "Goodwill Disclosure [Text Block]",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "GoodwillDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/GoodwillNotes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": {
     "auth_ref": [
      "r225"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Goodwill, Foreign Currency Translation Gain (Loss)",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "GoodwillForeignCurrencyTranslationGainLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/GoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Goodwill [Roll Forward]",
        "terseLabel": "Goodwill [Roll Forward]"
       }
      }
     },
     "localname": "GoodwillRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/GoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r74",
      "r96",
      "r141",
      "r143",
      "r146",
      "r149",
      "r151",
      "r186",
      "r445"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
        "label": "Gross Profit",
        "totalLabel": "Gross margin"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_HedgingDesignationAxis": {
     "auth_ref": [
      "r418",
      "r429"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Axis]",
        "terseLabel": "Hedging Designation [Axis]"
       }
      }
     },
     "localname": "HedgingDesignationAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_HedgingDesignationDomain": {
     "auth_ref": [
      "r418"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Domain]",
        "terseLabel": "Hedging Designation [Domain]"
       }
      }
     },
     "localname": "HedgingDesignationDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill": {
     "auth_ref": [
      "r89",
      "r237"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 5.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value.",
        "label": "Impairment of Intangible Assets (Excluding Goodwill)",
        "terseLabel": "Intangible asset impairment charges (Note 8)",
        "verboseLabel": "Intangible asset impairment charges"
       }
      }
     },
     "localname": "ImpairmentOfIntangibleAssetsExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations",
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InProcessResearchAndDevelopmentMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "In process investigation of new knowledge useful in developing new product or service or new process or technique or improvement to existing product or process, and translation of knowledge into plan or design for new product or process or for improvement to existing product or process.",
        "label": "In Process Research and Development [Member]",
        "terseLabel": "In-process technologies"
       }
      }
     },
     "localname": "InProcessResearchAndDevelopmentMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": {
     "auth_ref": [
      "r98",
      "r141",
      "r143",
      "r146",
      "r149",
      "r151"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.",
        "label": "Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest",
        "totalLabel": "Income (loss) before income tax expense (benefit)"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare": {
     "auth_ref": [
      "r69",
      "r72",
      "r105",
      "r110",
      "r111",
      "r112",
      "r113",
      "r123",
      "r125",
      "r126",
      "r127",
      "r528",
      "r542",
      "r544",
      "r546"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of net income (loss) derived from continuing operations during 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.",
        "label": "Income (Loss) from Continuing Operations, Per Diluted Share",
        "terseLabel": "Basic (usd per share)"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsPerDilutedShare",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Income Statement [Abstract]",
        "terseLabel": "Income Statement [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r241"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location [Axis]",
        "terseLabel": "Income Statement Location [Axis]"
       }
      }
     },
     "localname": "IncomeStatementLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Location in the income statement.",
        "label": "Income Statement Location [Domain]",
        "terseLabel": "Income Statement Location [Domain]"
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails",
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r370"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]",
        "terseLabel": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Income Tax Authority [Domain]",
        "terseLabel": "Income Tax Authority [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "auth_ref": [
      "r370"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by name of taxing authority.",
        "label": "Income Tax Authority, Name [Axis]",
        "terseLabel": "Income Tax Authority, Name [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.",
        "label": "Income Tax Authority, Name [Domain]",
        "terseLabel": "Income Tax Authority, Name [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxContingencyLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Income Tax Contingency [Line Items]",
        "terseLabel": "Income Tax Contingency [Line Items]"
       }
      }
     },
     "localname": "IncomeTaxContingencyLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxContingencyTable": {
     "auth_ref": [
      "r371",
      "r372",
      "r374",
      "r378"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about 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.",
        "label": "Income Tax Contingency [Table]",
        "terseLabel": "Income Tax Contingency [Table]"
       }
      }
     },
     "localname": "IncomeTaxContingencyTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]",
        "terseLabel": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r368",
      "r373",
      "r375",
      "r386",
      "r389",
      "r391",
      "r392",
      "r393"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Income Tax Disclosure [Text Block]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/Taxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear": {
     "auth_ref": [
      "r372"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount the liability recorded for the income tax examination increased or decreased in the current year/accounting period.",
        "label": "Income Tax Examination, Increase (Decrease) in Liability from Prior Year",
        "terseLabel": "Increase in reserves for income taxes, net of deferred tax benefit"
       }
      }
     },
     "localname": "IncomeTaxExaminationIncreaseDecreaseInLiabilityFromPriorYear",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r97",
      "r116",
      "r117",
      "r140",
      "r366",
      "r387",
      "r390",
      "r547"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Income Tax Expense (Benefit)",
        "terseLabel": "Income tax expense (benefit)"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 14.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Accounts Payable",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedTerseLabel": "Accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 15.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.",
        "label": "Increase (Decrease) in Accrued Liabilities",
        "terseLabel": "Accrued expenses"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedTaxesPayable": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 17.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period of all taxes owed but not paid, including income, property and other taxes.",
        "label": "Increase (Decrease) in Accrued Taxes Payable",
        "terseLabel": "Accrued income taxes"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedTaxesPayable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "terseLabel": "Unbilled revenue"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Deferred Income Taxes",
        "negatedLabel": "Change in deferred income taxes"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeferredIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 20.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.",
        "label": "Increase (Decrease) in Deferred Revenue",
        "terseLabel": "Deferred revenue and customer deposits"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 19.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Inventories",
        "negatedTerseLabel": "Inventories"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other.",
        "label": "Increase (Decrease) in Other Operating Assets and Liabilities, Net",
        "negatedTerseLabel": "Other"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherOperatingCapitalNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 16.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "negatedTerseLabel": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "terseLabel": "Increase (Decrease) in Stockholders' Equity"
       }
      }
     },
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r238"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for all or part of the information related to intangible assets.",
        "label": "Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Intangible Assets"
       }
      }
     },
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InterestReceivable": {
     "auth_ref": [
      "r42"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of interest earned but not received. Also called accrued interest or accrued interest receivable.",
        "label": "Interest Receivable",
        "terseLabel": "Accrued interest receivable"
       }
      }
     },
     "localname": "InterestReceivable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Inventory Disclosure [Abstract]",
        "terseLabel": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "localname": "InventoryDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r221"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Inventory Disclosure [Text Block]",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/Inventories"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "auth_ref": [
      "r24",
      "r220"
     ],
     "calculation": {
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Inventory, Finished Goods, Net of Reserves",
        "terseLabel": "Finished goods"
       }
      }
     },
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r2",
      "r41"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      },
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Inventory, Net",
        "terseLabel": "Inventories",
        "totalLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "auth_ref": [
      "r26",
      "r220"
     ],
     "calculation": {
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Inventory, Raw Materials, Net of Reserves",
        "terseLabel": "Raw materials"
       }
      }
     },
     "localname": "InventoryRawMaterialsNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "auth_ref": [
      "r25",
      "r220"
     ],
     "calculation": {
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Inventory, Work in Process, Net of Reserves",
        "terseLabel": "Work-in-process"
       }
      }
     },
     "localname": "InventoryWorkInProcessNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/InventoriesScheduleofInventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentIncomeNonoperating": {
     "auth_ref": [
      "r77"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The aggregate amount of income from investments (for example, dividends) not considered a component of the entity's core operations.",
        "label": "Investment Income, Nonoperating",
        "terseLabel": "Investment income"
       }
      }
     },
     "localname": "InvestmentIncomeNonoperating",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentTypeAxis": {
     "auth_ref": [
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of investments.",
        "label": "Investment Type [Axis]",
        "terseLabel": "Investment Type [Axis]"
       }
      }
     },
     "localname": "InvestmentTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_InvestmentTypeCategorizationMember": {
     "auth_ref": [
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Asset obtained to generate income or appreciate in value.",
        "label": "Investments [Domain]",
        "terseLabel": "Investments [Domain]"
       }
      }
     },
     "localname": "InvestmentTypeCategorizationMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments.",
        "label": "Investments Classified by Contractual Maturity Date [Table Text Block]",
        "terseLabel": "Effective Maturity Dates of Available-for-Sale Investments"
       }
      }
     },
     "localname": "InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]",
        "terseLabel": "Cash, Cash Equivalents, and Investments"
       }
      }
     },
     "localname": "InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestments"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LeaseCost": {
     "auth_ref": [
      "r469",
      "r471"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of lease cost recognized by lessee for lease contract.",
        "label": "Lease, Cost",
        "terseLabel": "Lease, cost"
       }
      }
     },
     "localname": "LeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Leases [Abstract]",
        "terseLabel": "Leases [Abstract]"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r470"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]",
        "terseLabel": "Lessee, Operating Lease, Liability, Maturity"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r470"
     ],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r470"
     ],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r470"
     ],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r470"
     ],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r470"
     ],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2021"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": {
     "auth_ref": [
      "r470"
     ],
     "calculation": {
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "terseLabel": "Remainder of fiscal 2019"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesFutureMinimumLeasePaymentObligationsUnderOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r472"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/Leases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock": {
     "auth_ref": [
      "r474"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of maturity of undiscounted cash flows to be received by lessor on annual basis for operating lease.",
        "label": "Lessor, Operating Lease, Payment to be Received, Fiscal Year Maturity [Table Text Block]",
        "terseLabel": "Lessor, Operating Lease, Payment to be Received, Fiscal Year Maturity [Table Text Block]"
       }
      }
     },
     "localname": "LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r36",
      "r96",
      "r145",
      "r186",
      "r407",
      "r410",
      "r411",
      "r445"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r21",
      "r96",
      "r186",
      "r445",
      "r523",
      "r540"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and shareholders' equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Liabilities and Equity [Abstract]",
        "terseLabel": "LIABILITIES AND SHAREHOLDERS\u2019 EQUITY"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r38",
      "r96",
      "r186",
      "r407",
      "r410",
      "r411",
      "r445"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Liabilities, Current",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Liabilities, Current [Abstract]",
        "terseLabel": "Current liabilities:"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesFairValueAdjustment": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of addition (reduction) to the amount at which a liability could be incurred (settled) in a current transaction between willing parties.",
        "label": "Liabilities, Fair Value Adjustment",
        "terseLabel": "Fair value adjustment"
       }
      }
     },
     "localname": "LiabilitiesFairValueAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesFairValueDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Liabilities, Fair Value Disclosure [Abstract]",
        "terseLabel": "Liabilities:"
       }
      }
     },
     "localname": "LiabilitiesFairValueDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "auth_ref": [
      "r39"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent.",
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "terseLabel": "Reserve for income taxes",
        "verboseLabel": "Reserve for income taxes classified as a noncurrent iability"
       }
      }
     },
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermInvestments": {
     "auth_ref": [
      "r33"
     ],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails": {
       "order": 3.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      },
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The total amount of investments that are intended to be held for an extended period of time (longer than one operating cycle).",
        "label": "Long-term Investments",
        "terseLabel": "Non-current investments, amortized cost of $461,948 and $431,633 in 2020 and 2019, respectively, allowance for expected credit losses of $75 and $0 in 2020 and 2019, respectively"
       }
      }
     },
     "localname": "LongTermInvestments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Maximum Remaining Maturity of Foreign Currency Derivatives",
        "terseLabel": "Remaining maturity of foreign currency derivatives (up to)"
       }
      }
     },
     "localname": "MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_MoneyMarketFundsAtCarryingValue": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Money Market Funds, at Carrying Value",
        "terseLabel": "Money market instruments"
       }
      }
     },
     "localname": "MoneyMarketFundsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MovementInDeferredRevenueRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Movement in Deferred Revenue [Roll Forward]",
        "terseLabel": "Movement in Deferred Revenue [Roll Forward]"
       }
      }
     },
     "localname": "MovementInDeferredRevenueRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionDeferredRevenueActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MovementInStandardProductWarrantyAccrualRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Movement in Standard Product Warranty Accrual [Roll Forward]",
        "terseLabel": "Movement in Standard Product Warranty Accrual [Roll Forward]"
       }
      }
     },
     "localname": "MovementInStandardProductWarrantyAccrualRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MunicipalBondsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Long-term debt securities issued by state, city or local governments or the agencies operated by state, city or local governments.",
        "label": "Municipal Bonds [Member]",
        "terseLabel": "Municipal Bonds"
       }
      }
     },
     "localname": "MunicipalBondsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Net cash provided by (used in) financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]",
        "terseLabel": "Cash flows from financing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Net cash provided by (used in) investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]",
        "terseLabel": "Cash flows from investing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r86",
      "r87",
      "r90"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Net cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Cash flows from operating activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r0",
      "r63",
      "r66",
      "r70",
      "r90",
      "r96",
      "r105",
      "r110",
      "r111",
      "r112",
      "r113",
      "r116",
      "r117",
      "r124",
      "r141",
      "r143",
      "r146",
      "r149",
      "r151",
      "r186",
      "r445",
      "r526",
      "r543"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 18.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": 1.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      },
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "Net Income (Loss) Attributable to Parent",
        "terseLabel": "Net income",
        "totalLabel": "Net Income"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome",
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "auth_ref": [
      "r103",
      "r104",
      "r107",
      "r108",
      "r118",
      "r119",
      "r120",
      "r191",
      "r192",
      "r294",
      "r295",
      "r296",
      "r297",
      "r356",
      "r383",
      "r384",
      "r385",
      "r516",
      "r517",
      "r518",
      "r559",
      "r560",
      "r561",
      "r562",
      "r564"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]",
        "terseLabel": "New Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/NewPronouncements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "New Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NondesignatedMember": {
     "auth_ref": [
      "r418"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).",
        "label": "Not Designated as Hedging Instrument [Member]",
        "terseLabel": "Not Designated as Hedging Instrument"
       }
      }
     },
     "localname": "NondesignatedMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsTableDetails",
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OffsettingAssetsTableTextBlock": {
     "auth_ref": [
      "r47",
      "r48"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of derivative and other financial assets that are subject to offsetting, including master netting arrangements.",
        "label": "Offsetting Assets [Table Text Block]",
        "terseLabel": "Offsetting Assets"
       }
      }
     },
     "localname": "OffsettingAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OneTimeTerminationBenefitsMember": {
     "auth_ref": [
      "r242"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A lump sum payment to an involuntarily terminated employee in conjunction with exit or disposal activities.",
        "label": "One-time Termination Benefits [Member]",
        "terseLabel": "One-time termination benefits",
        "verboseLabel": "One-time Termination Benefits"
       }
      }
     },
     "localname": "OneTimeTerminationBenefitsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r141",
      "r143",
      "r146",
      "r149",
      "r151"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The net result for the period of deducting operating expenses from operating revenues.",
        "label": "Operating Income (Loss)",
        "totalLabel": "Operating income (loss)"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseCost": {
     "auth_ref": [
      "r465",
      "r471"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.",
        "label": "Operating Lease, Cost",
        "terseLabel": "Operating lease, cost"
       }
      }
     },
     "localname": "OperatingLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseImpairmentLoss": {
     "auth_ref": [
      "r461"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of loss from impairment of right-of-use asset from operating lease.",
        "label": "Operating Lease, Impairment Loss",
        "terseLabel": "Operating lease asset impairment charges"
       }
      }
     },
     "localname": "OperatingLeaseImpairmentLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.cognex.com/role/FairValueMeasurementsDetails",
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLeaseIncome": {
     "auth_ref": [
      "r135",
      "r473",
      "r475"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of operating lease income from lease payments and variable lease payments paid and payable to lessor. Includes, but is not limited to, variable lease payments not included in measurement of lease receivable.",
        "label": "Operating Lease, Lease Income",
        "terseLabel": "Rental income"
       }
      }
     },
     "localname": "OperatingLeaseLeaseIncome",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r463"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Operating Lease, Liability",
        "terseLabel": "Operating Lease, Liability"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Operating Lease, Liability, Current",
        "terseLabel": "Operating lease liabilities",
        "verboseLabel": "Operating lease, liability, current"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r463"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Operating Lease, Liability, Noncurrent",
        "terseLabel": "Operating Lease, Liability, Noncurrent",
        "verboseLabel": "Operating lease, liability, noncurrent"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r464",
      "r466"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.",
        "label": "Operating Lease, Payments",
        "terseLabel": "Operating lease, payments"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r462"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Operating Lease, Right-of-Use Asset",
        "terseLabel": "Operating lease assets",
        "verboseLabel": "Operating lease, right-of-use asset"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r468",
      "r471"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "terseLabel": "Weighted average discount rate"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r467",
      "r471"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "terseLabel": "Weighted average remaining lease term"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]",
        "terseLabel": "Organization, Consolidation and Presentation of Financial Statements [Abstract]"
       }
      }
     },
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r34"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 8.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "Other Assets, Noncurrent",
        "terseLabel": "Other assets"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r404",
      "r405",
      "r408"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) loss.",
        "label": "Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, Net of Tax, Portion Attributable to Parent",
        "totalLabel": "Net change related to available-for-sale investments"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax": {
     "auth_ref": [
      "r51",
      "r57",
      "r447",
      "r450",
      "r458"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of tax expense (benefit), before 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.",
        "label": "OCI, Foreign Currency Transaction and Translation Gain (Loss), Arising During Period, Tax",
        "terseLabel": "Tax effect of foreign currency translation adjustment"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeForeignCurrencyTranslationGainLossArisingDuringPeriodTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax": {
     "auth_ref": [
      "r52",
      "r57"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of tax expense (benefit), after reclassification adjustments, of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).",
        "label": "Other Comprehensive Income (Loss), Derivatives Qualifying as Hedges, Tax",
        "terseLabel": "Tax effect on cash flow hedges"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r51"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax",
        "terseLabel": "Foreign currency translation adjustment",
        "verboseLabel": "Foreign currency translation adjustments"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Net of Tax [Abstract]",
        "terseLabel": "Available-for-sale investments:"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r64",
      "r67",
      "r404",
      "r405",
      "r408"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": 2.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "totalLabel": "Other comprehensive income, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax": {
     "auth_ref": [
      "r56",
      "r60",
      "r61",
      "r185"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax",
        "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"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": {
     "auth_ref": [
      "r53",
      "r56"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax",
        "terseLabel": "Net unrealized gain (loss), net of tax of ($836) and $239 in the three-month periods and net of tax of ($1,788) and $507 in the six-month periods, respectively",
        "verboseLabel": "Net unrealized gain (loss) on available-for-sale investments, net of tax of ($82)"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": {
     "auth_ref": [
      "r54",
      "r57"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax",
        "terseLabel": "Tax effect of unrealized gain (loss) on available-for-sale investments"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquityParenthetical",
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncomeParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherCurrentAssetsMember": {
     "auth_ref": [
      "r420",
      "r432"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption encompassing other current assets.",
        "label": "Other Current Assets [Member]",
        "terseLabel": "Other Current Assets"
       }
      }
     },
     "localname": "OtherCurrentAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherIntangibleAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Intangible assets classified as other.",
        "label": "Other Intangible Assets [Member]",
        "terseLabel": "Non-compete agreements"
       }
      }
     },
     "localname": "OtherIntangibleAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "auth_ref": [
      "r39"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.",
        "label": "Other Liabilities, Noncurrent",
        "terseLabel": "Other liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "auth_ref": [
      "r78"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.",
        "label": "Other Nonoperating Income (Expense)",
        "terseLabel": "Other income (expense)"
       }
      }
     },
     "localname": "OtherNonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNonoperatingIncomeExpenseMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption encompassing other nonoperating income (expense).",
        "label": "Other Nonoperating Income (Expense) [Member]",
        "terseLabel": "Other Income (Expense)"
       }
      }
     },
     "localname": "OtherNonoperatingIncomeExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherRestructuringMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Restructuring and related activities classified as other.",
        "label": "Other Restructuring [Member]",
        "terseLabel": "Other associated costs",
        "verboseLabel": "Other Associated Costs"
       }
      }
     },
     "localname": "OtherRestructuringMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale": {
     "auth_ref": [
      "r167"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome": {
       "order": 3.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of other-than-temporary impairment (OTTI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), recognized in earnings and other comprehensive loss (OCI).",
        "label": "Other-than-temporary Impairment Loss, Debt Securities, Available-for-sale",
        "negatedLabel": "Reclassification of credit (recovery) loss on investments",
        "negatedTerseLabel": "Reclassification of credit loss on investments",
        "terseLabel": "Reclassification of credit loss on investments"
       }
      }
     },
     "localname": "OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsCashCashEquivalentsandInvestmentsScheduleofAllowanceforCreditLossActivityDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
      "http://www.cognex.com/role/ConsolidatedStatementsofComprehensiveIncome",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "auth_ref": [
      "r84"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.",
        "label": "Payment for Contingent Consideration Liability, Financing Activities",
        "negatedTerseLabel": "Payment of contingent consideration",
        "terseLabel": "Payment of contingent consideration"
       }
      }
     },
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "auth_ref": [
      "r83"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cash outflow to reacquire common stock during the period.",
        "label": "Payments for Repurchase of Common Stock",
        "negatedLabel": "Repurchase of common stock"
       }
      }
     },
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRestructuring": {
     "auth_ref": [
      "r85",
      "r245"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Payments for Restructuring",
        "negatedTerseLabel": "Cash payments"
       }
      }
     },
     "localname": "PaymentsForRestructuring",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDividendsCommonStock": {
     "auth_ref": [
      "r83"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.",
        "label": "Payments of Ordinary Dividends, Common Stock",
        "negatedTerseLabel": "Payment of dividends"
       }
      }
     },
     "localname": "PaymentsOfDividendsCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireInvestments": {
     "auth_ref": [
      "r81"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cash outflow associated with the purchase of all investments (debt, security, other) during the period.",
        "label": "Payments to Acquire Investments",
        "negatedLabel": "Purchases of investments"
       }
      }
     },
     "localname": "PaymentsToAcquireInvestments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r80"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Purchases of property, plant, and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PerformanceSharesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Share-based payment arrangement awarded for meeting performance target.",
        "label": "Performance Shares [Member]",
        "terseLabel": "Performance Shares"
       }
      }
     },
     "localname": "PerformanceSharesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r317",
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by plan name for share-based payment arrangement.",
        "label": "Plan Name [Axis]",
        "terseLabel": "Plan Name [Axis]"
       }
      }
     },
     "localname": "PlanNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement.",
        "label": "Plan Name [Domain]",
        "terseLabel": "Plan Name [Domain]"
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockValueOutstanding": {
     "auth_ref": [
      "r13"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Preferred Stock, Value, Outstanding",
        "terseLabel": "Preferred Stock, Value, Outstanding"
       }
      }
     },
     "localname": "PreferredStockValueOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r4",
      "r30",
      "r31"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Prepaid Expense and Other Assets, Current",
        "terseLabel": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption encompassing prepaid expenses and other current assets.",
        "label": "Prepaid Expenses and Other Current Assets [Member]",
        "terseLabel": "Prepaid Expenses and Other Current Assets"
       }
      }
     },
     "localname": "PrepaidExpensesAndOtherCurrentAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsScheduleofDerivativeInstrumentsinStatementofFinancialPositionFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions": {
     "auth_ref": [
      "r82",
      "r348"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised.",
        "label": "Proceeds, Issuance of Shares, Share-based Payment Arrangement, Including Option Exercised",
        "terseLabel": "Issuance of common stock under stock plans"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments": {
     "auth_ref": [
      "r79"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cash inflow associated with the sale, maturity and collection of all investments such as debt, security and so forth during the period.",
        "label": "Proceeds from Sale, Maturity and Collection of Investments",
        "terseLabel": "Maturities and sales of investments"
       }
      }
     },
     "localname": "ProceedsFromSaleMaturityAndCollectionsOfInvestments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantiesDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Product Warranties Disclosures [Abstract]",
        "terseLabel": "Product Warranties Disclosures [Abstract]"
       }
      }
     },
     "localname": "ProductWarrantiesDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ProductWarrantyAccrual": {
     "auth_ref": [
      "r262",
      "r263",
      "r525"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Standard and Extended Product Warranty Accrual",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance"
       }
      }
     },
     "localname": "ProductWarrantyAccrual",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualPayments": {
     "auth_ref": [
      "r260"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Standard and Extended Product Warranty Accrual, Decrease for Payments",
        "negatedLabel": "Fulfillment of warranty obligations"
       }
      }
     },
     "localname": "ProductWarrantyAccrualPayments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualWarrantiesIssued": {
     "auth_ref": [
      "r261"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase in the standard and extended product warranty accrual from warranties issued.",
        "label": "Standard and Extended Product Warranty Accrual, Increase for Warranties Issued",
        "verboseLabel": "Provisions for warranties issued during the period"
       }
      }
     },
     "localname": "ProductWarrantyAccrualWarrantiesIssued",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WarrantyObligationsChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyDisclosureTextBlock": {
     "auth_ref": [
      "r265"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for standard and extended product warranties and other product guarantee contracts, including a tabular reconciliation of the changes in the guarantor's aggregate product warranty liability for the reporting period.",
        "label": "Product Warranty Disclosure [Text Block]",
        "terseLabel": "Warranty Obligations"
       }
      }
     },
     "localname": "ProductWarrantyDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WarrantyObligations"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r9",
      "r10",
      "r240",
      "r541"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Property, Plant and Equipment, Net",
        "terseLabel": "Property, plant, and equipment, net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r73",
      "r198"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "terseLabel": "Increases to the allowance for credit losses",
        "verboseLabel": "Credit losses on accounts receivable"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionAdditionalInformationDetails",
      "http://www.cognex.com/role/RevenueRecognitionScheduleofAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesPolicyTextBlock": {
     "auth_ref": [
      "r94",
      "r159",
      "r162",
      "r163",
      "r164"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for receivable. Includes, but is not limited to, accounts receivable and financing receivable.",
        "label": "Receivable [Policy Text Block]",
        "terseLabel": "Accounts Receivable"
       }
      }
     },
     "localname": "ReceivablesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r363",
      "r592"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Research and Development Expense",
        "terseLabel": "Research, development, and engineering expenses"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.",
        "label": "Research and Development Expense [Member]",
        "terseLabel": "Research, Development, and Engineering Expenses"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsDerivativeInstrumentsGainLossDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseScheduleofEmployeeServiceSharebasedCompensationAllocationofRecognizedPeriodCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockMember": {
     "auth_ref": [
      "r128"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Restricted Stock [Member]",
        "terseLabel": "Restricted Stock"
       }
      }
     },
     "localname": "RestrictedStockMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "terseLabel": "Restricted Stock Units (RSUs)"
       }
      }
     },
     "localname": "RestrictedStockUnitsRSUMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringAndRelatedActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Restructuring and Related Activities [Abstract]"
       }
      }
     },
     "localname": "RestructuringAndRelatedActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": {
     "auth_ref": [
      "r259"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Restructuring and Related Activities Disclosure [Text Block]",
        "terseLabel": "Restructuring Charges"
       }
      }
     },
     "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringCharges"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RestructuringAndRelatedCostExpectedCost1": {
     "auth_ref": [
      "r244",
      "r247",
      "r254",
      "r258"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount expected to be recognized in earnings for the specified restructuring cost.",
        "label": "Restructuring and Related Cost, Expected Cost",
        "terseLabel": "Total Amount Expected to be Incurred"
       }
      }
     },
     "localname": "RestructuringAndRelatedCostExpectedCost1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesNarrativeDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The expected number of positions to be eliminated as a result of restructuring activities.",
        "label": "Restructuring and Related Cost, Expected Number of Positions Eliminated",
        "terseLabel": "Expected number of positions eliminated"
       }
      }
     },
     "localname": "RestructuringAndRelatedCostExpectedNumberOfPositionsEliminated",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesNarrativeDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of the total number of positions eliminated as of the balance sheet date since inception of the restructuring plan(s).",
        "label": "Restructuring and Related Cost, Number of Positions Eliminated, Inception to Date Percent",
        "terseLabel": "Workforce reduction (as a percent)"
       }
      }
     },
     "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_RestructuringCharges": {
     "auth_ref": [
      "r89",
      "r243",
      "r250",
      "r256"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Restructuring Charges",
        "netLabel": "Restructuring charges",
        "terseLabel": "Restructuring charges (Note 16)",
        "verboseLabel": "Incurred in the Three-months Ended June 28, 2020"
       }
      }
     },
     "localname": "RestructuringCharges",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations",
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringChargesMember": {
     "auth_ref": [
      "r246",
      "r250",
      "r257"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Primary financial statement caption in which the reported facts about restructuring charges have been included.",
        "label": "Restructuring Charges [Member]",
        "terseLabel": "Restructuring Charges"
       }
      }
     },
     "localname": "RestructuringChargesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of restructuring cost.",
        "label": "Restructuring Type [Axis]",
        "terseLabel": "Restructuring Type [Axis]"
       }
      }
     },
     "localname": "RestructuringCostAndReserveAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringCostAndReserveLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Restructuring Cost and Reserve [Line Items]",
        "terseLabel": "Restructuring Cost and Reserve [Line Items]"
       }
      }
     },
     "localname": "RestructuringCostAndReserveLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringReserve": {
     "auth_ref": [
      "r245",
      "r252"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Restructuring Reserve",
        "periodEndLabel": "Balance at end of period",
        "periodStartLabel": "Balance at beginning of period"
       }
      }
     },
     "localname": "RestructuringReserve",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringReserveRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Restructuring Reserve [Roll Forward]",
        "terseLabel": "Restructuring Reserve [Roll Forward]"
       }
      }
     },
     "localname": "RestructuringReserveRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringReserveSettledWithoutCash2": {
     "auth_ref": [
      "r243",
      "r251"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of decrease in the reserve for full or partial settlement through consideration other than cash.",
        "label": "Restructuring Reserve, Settled without Cash",
        "negatedTerseLabel": "Non-cash restructuring charges"
       }
      }
     },
     "localname": "RestructuringReserveSettledWithoutCash2",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringReserveTranslationAdjustment": {
     "auth_ref": [
      "r245",
      "r255"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the restructuring reserve.",
        "label": "Restructuring Reserve, Foreign Currency Translation Gain (Loss)",
        "negatedTerseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "RestructuringReserveTranslationAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r17",
      "r267",
      "r357",
      "r539",
      "r559",
      "r564"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings (Accumulated Deficit)",
        "terseLabel": "Retained earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r100",
      "r101",
      "r102",
      "r106",
      "r115",
      "r117",
      "r190",
      "r353",
      "r354",
      "r355",
      "r381",
      "r382",
      "r555",
      "r557"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings [Member]",
        "terseLabel": "Retained Earnings"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueCommissionersIrelandMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Designated tax department of the government of Ireland.",
        "label": "Revenue Commissioners, Ireland [Member]",
        "terseLabel": "Revenue Commissioners, Ireland"
       }
      }
     },
     "localname": "RevenueCommissionersIrelandMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Revenue from Contract with Customer [Abstract]",
        "terseLabel": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "auth_ref": [
      "r138",
      "r139",
      "r142",
      "r147",
      "r148",
      "r152",
      "r153",
      "r156",
      "r283",
      "r284",
      "r511"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "terseLabel": "Revenue"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations",
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyGeographyDetails",
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r286",
      "r298"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Revenue from Contract with Customer [Text Block]",
        "terseLabel": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognition"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock": {
     "auth_ref": [
      "r155"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of revenue from external customers by geographic areas attributed to the entity's country of domicile and to foreign countries from which the entity derives revenue.",
        "label": "Revenue from External Customers by Geographic Areas [Table Text Block]",
        "terseLabel": "Revenue from External Customers by Geographic Areas"
       }
      }
     },
     "localname": "RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-sale [Line Items]",
        "terseLabel": "Debt Securities, Available-for-sale [Line Items]"
       }
      }
     },
     "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation of available-for-sale securities from cost basis to fair value.",
        "label": "Schedule of Available-for-sale Securities Reconciliation [Table Text Block]",
        "terseLabel": "Summary of Available-for-Sale Investments"
       }
      }
     },
     "localname": "ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesTable": {
     "auth_ref": [
      "r174",
      "r176",
      "r181",
      "r182",
      "r183",
      "r184",
      "r530",
      "r531"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Schedule of available-for-sale securities which includes, but is not limited to, changes in the cost basis and fair value, fair value and gross unrealized gain (loss), fair values by type of security, contractual maturity and classification, amortized cost basis, contracts to acquire securities to be accounted for as available-for-sale, debt maturities, transfers to trading, change in net unrealized holding gain (loss) net of tax, continuous unrealized loss position fair value, aggregate losses qualitative disclosures, other than temporary impairment (OTTI) losses or other disclosures related to available for sale securities.",
        "label": "Schedule of Available-for-sale Securities [Table]",
        "terseLabel": "Schedule of Available-for-sale Securities [Table]"
       }
      }
     },
     "localname": "ScheduleOfAvailableForSaleSecuritiesTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfCashAndCashEquivalentsTable": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Schedule of cash and cash equivalent balances. This table excludes restricted cash balances.",
        "label": "Schedule of Cash and Cash Equivalents [Table]",
        "terseLabel": "Schedule of Cash and Cash Equivalents [Table]"
       }
      }
     },
     "localname": "ScheduleOfCashAndCashEquivalentsTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": {
     "auth_ref": [
      "r421",
      "r426",
      "r429"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Derivative Instruments, Gain (Loss) [Table Text Block]",
        "terseLabel": "Derivative Instruments, Gain (Loss)"
       }
      }
     },
     "localname": "ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock": {
     "auth_ref": [
      "r425"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]",
        "terseLabel": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value"
       }
      }
     },
     "localname": "ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r367"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "terseLabel": "Reconciliation of United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate, or Income Tax Provision"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "auth_ref": [
      "r316",
      "r344",
      "r359"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table]",
        "terseLabel": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table]"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "auth_ref": [
      "r316",
      "r344",
      "r359"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "verboseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable": {
     "auth_ref": [
      "r152"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular presentation of the description and amount of revenues from a product or service, or a group of similar products or similar services, reported from external customers during the period, if the information is not provided as part of the reportable operating segment information.",
        "label": "Revenue from External Customers by Products and Services [Table]",
        "terseLabel": "Revenue from External Customers by Products and Services [Table]"
       }
      }
     },
     "localname": "ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionRevenueDisaggregatedbyProductsandServicesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock": {
     "auth_ref": [
      "r152"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of entity-wide revenues from external customers for each product or service or each group of similar products or services if the information is not provided as part of the reportable operating segment information.",
        "label": "Revenue from External Customers by Products and Services [Table Text Block]",
        "terseLabel": "Revenue from External Customers by Products and Services"
       }
      }
     },
     "localname": "ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "auth_ref": [
      "r435",
      "r436"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]",
        "terseLabel": "Assets and Liabilities Measured at Fair Value on a Recurring Basis"
       }
      }
     },
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r230",
      "r232",
      "r512"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table]",
        "terseLabel": "Schedule of Finite-Lived Intangible Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r230",
      "r232"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "terseLabel": "Schedule of Intangible Assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r226",
      "r227"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.",
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Schedule of Goodwill"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/GoodwillTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "auth_ref": [
      "r7",
      "r27",
      "r28",
      "r29"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "terseLabel": "Schedule of Inventories"
       }
      }
     },
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/InventoriesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock": {
     "auth_ref": [
      "r328"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the changes in outstanding nonvested restricted stock units.",
        "label": "Schedule of Nonvested Restricted Stock Units Activity [Table Text Block]",
        "terseLabel": "Schedule of Nonvested Restricted Stock Units Activity"
       }
      }
     },
     "localname": "ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "auth_ref": [
      "r264"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Schedule of Product Warranty Liability [Table Text Block]",
        "terseLabel": "Changes in Warranty Obligations"
       }
      }
     },
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WarrantyObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": {
     "auth_ref": [
      "r248",
      "r249",
      "r253"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Schedule of Restructuring and Related Costs [Table]",
        "terseLabel": "Schedule of Restructuring and Related Costs [Table]"
       }
      }
     },
     "localname": "ScheduleOfRestructuringAndRelatedCostsTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock": {
     "auth_ref": [
      "r248",
      "r249",
      "r253"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Restructuring and Related Costs [Table Text Block]",
        "terseLabel": "Schedule of Restructuring Charges"
       }
      }
     },
     "localname": "ScheduleOfRestructuringAndRelatedCostsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock": {
     "auth_ref": [
      "r245",
      "r255"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Schedule of Restructuring Reserve by Type of Cost [Table Text Block]",
        "terseLabel": "Schedule of Activity in Restructuring Reserve"
       }
      }
     },
     "localname": "ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r317",
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of information about share-based payment arrangement.",
        "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails",
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails",
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r320",
      "r333",
      "r335"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Payment Arrangement, Option, Activity [Table Text Block]",
        "terseLabel": "Summary of Stock Option Activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "auth_ref": [
      "r338"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "terseLabel": "Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted"
       }
      }
     },
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock": {
     "auth_ref": [
      "r181"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Schedule of Unrealized Loss on Investments [Table Text Block]",
        "terseLabel": "Gross Unrealized Losses and Fair Values for Available-for-Sale Investments"
       }
      }
     },
     "localname": "ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": {
     "auth_ref": [
      "r129"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Schedule of Weighted Average Number of Shares [Table Text Block]",
        "terseLabel": "Calculation of Weighted-Average Shares"
       }
      }
     },
     "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageSharesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r232"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "terseLabel": "Schedule of Intangible Assets, Future Amortization Expense"
       }
      }
     },
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r76"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Selling, General and Administrative Expense",
        "terseLabel": "Selling, general, and administrative expenses"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r318"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period",
        "terseLabel": "Vesting period for stock option plans"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "auth_ref": [
      "r326"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "negatedTerseLabel": "Forfeited or expired (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r332"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "terseLabel": "Forfeited or expired (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r330"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "terseLabel": "Granted (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r330"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Granted (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "auth_ref": [
      "r329"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "periodEndLabel": "Nonvested as of March 29, 2020 (in shares)",
        "periodStartLabel": "Nonvested as of December 31, 2019 (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "terseLabel": "Shares (in thousands)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r329"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Nonvested as of March 29, 2020 (in dollars per share)",
        "periodStartLabel": "Nonvested as of December 31, 2019 (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]",
        "terseLabel": "Weighted-Average Grant Date Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r331"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "terseLabel": "Vested (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r331"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Vested (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "auth_ref": [
      "r341"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "terseLabel": "Expected dividend yield"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r340"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate",
        "terseLabel": "Expected volatility"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r342"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate",
        "terseLabel": "Risk-free rate"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails",
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails",
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "auth_ref": [
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant",
        "terseLabel": "Shares available for grant under stock option plans"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract]",
        "terseLabel": "Weighted- Average Remaining Contractual Term\u00a0(in\u00a0years)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r323"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number",
        "terseLabel": "Exercisable as of reporting date, shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r323"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "terseLabel": "Exercisable as of reporting date, Weighted-Average Exercise Price, in dollars per share"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "auth_ref": [
      "r327"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period",
        "negatedLabel": "Forfeited or expired, shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r327"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average price of options that were either forfeited or expired.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price",
        "terseLabel": "Forfeited or expired, in dollars per share"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "auth_ref": [
      "r324"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Net number of share options (or share units) granted during the period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures",
        "terseLabel": "Granted, shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r334"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Weighted-average grant-date fair values, in dollars per share"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "auth_ref": [
      "r347"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value",
        "terseLabel": "Outstanding, in dollars"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r322",
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number",
        "periodEndLabel": "Outstanding, shares",
        "periodStartLabel": "Outstanding, shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]",
        "terseLabel": "Shares (in\u00a0thousands)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r321"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "periodEndLabel": "Outstanding, shares",
        "periodStartLabel": "Outstanding, shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]",
        "terseLabel": "Weighted- Average Exercise Price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "auth_ref": [
      "r337"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number",
        "terseLabel": "Options vested or expected to vest as of reporting date, shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "auth_ref": [
      "r335"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "terseLabel": "Options vested or expected to vest, in dollars"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r336"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "terseLabel": "Weighted- Average Remaining Contractual Term\u00a0(in\u00a0years)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": {
     "auth_ref": [
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of shares issued under share-based payment arrangement.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Shares Issued in Period",
        "terseLabel": "Issuance of common stock under stock plans (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r315",
      "r319"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Award under share-based payment arrangement.",
        "label": "Award Type [Domain]",
        "terseLabel": "Award Type [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseDetails",
      "http://www.cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseScheduleofRestrictedStockUnitsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "terseLabel": "Exercised, in dollars per share"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
        "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "terseLabel": "Granted, in dollars per share"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareRepurchaseProgramAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by share repurchase program.",
        "label": "Share Repurchase Program [Axis]",
        "terseLabel": "Share Repurchase Program [Axis]"
       }
      }
     },
     "localname": "ShareRepurchaseProgramAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareRepurchaseProgramDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Name of the share repurchase program.",
        "label": "Share Repurchase Program [Domain]",
        "terseLabel": "Share Repurchase Program [Domain]"
       }
      }
     },
     "localname": "ShareRepurchaseProgramDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r339",
      "r358"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term",
        "terseLabel": "Expected term (in years)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "terseLabel": "Exercisable, in years"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r336"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "terseLabel": "Outstanding, in years"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r336"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term",
        "terseLabel": "Options vested or expected to vest, in years"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "auth_ref": [
      "r578",
      "r579",
      "r580",
      "r581"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Short-term Investments [Member]",
        "terseLabel": "Short-Term Investments"
       }
      }
     },
     "localname": "ShortTermInvestmentsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r99"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "Significant Accounting Policies [Text Block]",
        "terseLabel": "Summary of Significant Accounting Policies"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SummaryofSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SovereignDebtMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Debt securities that are issued or guaranteed by a national government.",
        "label": "Sovereign Debt [Member]",
        "terseLabel": "Sovereign bonds"
       }
      }
     },
     "localname": "SovereignDebtMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SovereignDebtSecuritiesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Debt security issued by foreign government (not within the country of domicile of the entity).",
        "label": "Sovereign Debt Securities [Member]",
        "terseLabel": "Sovereign Bonds"
       }
      }
     },
     "localname": "SovereignDebtSecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StateAdministrationOfTaxationChinaMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Designated tax department of the government of China.",
        "label": "State Administration of Taxation, China [Member]",
        "terseLabel": "State Administration of Taxation, China"
       }
      }
     },
     "localname": "StateAdministrationOfTaxationChinaMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r40",
      "r100",
      "r101",
      "r102",
      "r106",
      "r115",
      "r117",
      "r136",
      "r190",
      "r266",
      "r267",
      "r353",
      "r354",
      "r355",
      "r381",
      "r382",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r459",
      "r555",
      "r556",
      "r557"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]",
        "terseLabel": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Statement [Line Items]",
        "terseLabel": "Statement [Line Items]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]",
        "terseLabel": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Financial Position [Abstract]",
        "terseLabel": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Comprehensive Income [Abstract]",
        "terseLabel": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]",
        "terseLabel": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r100",
      "r101",
      "r102",
      "r136",
      "r511"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Statement [Table]",
        "terseLabel": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r13",
      "r14",
      "r266",
      "r267",
      "r325"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period",
        "negatedLabel": "Exercised, shares"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r40",
      "r266",
      "r267"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Value of stock issued as a result of the exercise of stock options.",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "terseLabel": "Issuance of common stock under stock plans"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockOptionPlanExpense": {
     "auth_ref": [
      "r89"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of noncash expense for option under share-based payment arrangement.",
        "label": "Stock or Unit Option Plan Expense",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "StockOptionPlanExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchaseProgramAuthorizedAmount1": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of stock repurchase plan authorized.",
        "label": "Stock Repurchase Program, Authorized Amount",
        "terseLabel": "Authorized common stock to be repurchased"
       }
      }
     },
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount remaining of a stock repurchase plan authorized.",
        "label": "Stock Repurchase Program, Remaining Authorized Repurchase Amount",
        "terseLabel": "Remaining authorized repurchase amount"
       }
      }
     },
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "auth_ref": [
      "r13",
      "r14",
      "r266",
      "r267"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Stock Repurchased During Period, Shares",
        "negatedLabel": "Repurchase of common stock (in shares)",
        "verboseLabel": "Repurchase of common stock (in shares)"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodShares",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "auth_ref": [
      "r13",
      "r14",
      "r266",
      "r267"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Stock Repurchased During Period, Value",
        "negatedLabel": "Repurchase of common stock",
        "terseLabel": "Stock repurchased during period, value"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity",
      "http://www.cognex.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r14",
      "r19",
      "r20",
      "r96",
      "r161",
      "r186",
      "r445"
     ],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.",
        "label": "Stockholders' Equity Attributable to Parent",
        "periodEndLabel": "Ending Balance",
        "periodStartLabel": "Beginning Balance",
        "totalLabel": "Total shareholders\u2019 equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets",
      "http://www.cognex.com/role/ConsolidatedStatementofShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Stockholders' Equity Attributable to Parent [Abstract]",
        "terseLabel": "Shareholders\u2019 equity:"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "auth_ref": [
      "r95",
      "r267",
      "r272"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.",
        "label": "Stockholders' Equity Note Disclosure [Text Block]",
        "terseLabel": "Stock Repurchase Program"
       }
      }
     },
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/StockRepurchaseProgram"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SubsequentEventLineItems": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Subsequent Event [Line Items]",
        "terseLabel": "Subsequent Event [Line Items]"
       }
      }
     },
     "localname": "SubsequentEventLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [
      "r460",
      "r477"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event [Member]",
        "terseLabel": "Subsequent Event"
       }
      }
     },
     "localname": "SubsequentEventMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTable": {
     "auth_ref": [
      "r460",
      "r477"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Subsequent Event [Table]",
        "terseLabel": "Subsequent Event [Table]"
       }
      }
     },
     "localname": "SubsequentEventTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r460",
      "r477"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Axis]",
        "terseLabel": "Subsequent Event Type [Axis]"
       }
      }
     },
     "localname": "SubsequentEventTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r460",
      "r477"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Domain]",
        "terseLabel": "Subsequent Event Type [Domain]"
       }
      }
     },
     "localname": "SubsequentEventTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Subsequent Events [Abstract]",
        "terseLabel": "Subsequent Events [Abstract]"
       }
      }
     },
     "localname": "SubsequentEventsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r476",
      "r478"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Subsequent Events [Text Block]",
        "terseLabel": "Subsequent Events"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/SubsequentEvents"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_TrademarksMember": {
     "auth_ref": [
      "r397"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style.",
        "label": "Trademarks [Member]",
        "terseLabel": "Trademarks"
       }
      }
     },
     "localname": "TrademarksMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "auth_ref": [
      "r177",
      "r178",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Financial Instruments [Domain]",
        "terseLabel": "Financial Instruments [Domain]"
       }
      }
     },
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfAdoptionMember": {
     "auth_ref": [
      "r105",
      "r106",
      "r107",
      "r109",
      "r187",
      "r188",
      "r189",
      "r190",
      "r193",
      "r194",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r354",
      "r355",
      "r357",
      "r379",
      "r380",
      "r381",
      "r382",
      "r513",
      "r514",
      "r515",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amendment to accounting standards.",
        "label": "Accounting Standards Update [Domain]",
        "terseLabel": "Accounting Standards Update [Domain]"
       }
      }
     },
     "localname": "TypeOfAdoptionMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Identification of the types of restructuring costs.",
        "label": "Type of Restructuring [Domain]",
        "terseLabel": "Type of Restructuring [Domain]"
       }
      }
     },
     "localname": "TypeOfRestructuringDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/RestructuringChargesActivityinRestructuringReserveDetails",
      "http://www.cognex.com/role/RestructuringChargesSummaryDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "auth_ref": [
      "r302",
      "r309",
      "r529"
     ],
     "lang": {
      "en-US": {
       "role": {
        "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).",
        "label": "US Treasury Securities [Member]",
        "terseLabel": "Treasury Bills"
       }
      }
     },
     "localname": "USTreasurySecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValuesforAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/CashCashEquivalentsandInvestmentsSummaryofAvailableforSaleInvestmentsDetails",
      "http://www.cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.cognex.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Unbilled Receivables, Current",
        "terseLabel": "Unbilled revenue"
       }
      }
     },
     "localname": "UnbilledReceivablesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "auth_ref": [
      "r369"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "terseLabel": "Interest and penalties, gross"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Adjustment to the weighted average number of basic shares outstanding to convert this to a pro forma presentation.",
        "label": "Weighted Average Number Basic Shares Outstanding Adjustment, Pro Forma",
        "terseLabel": "Weighted Average Number Basic Shares Outstanding Adjustment, Pro Forma"
       }
      }
     },
     "localname": "WeightedAverageNumberBasicSharesOutstandingAdjustmentProForma",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "auth_ref": [
      "r127"
     ],
     "calculation": {
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.",
        "label": "Weighted Average Number Diluted Shares Outstanding Adjustment",
        "terseLabel": "Effect of dilutive equity awards"
       }
      }
     },
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails",
      "http://www.cognex.com/role/WeightedAverageSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r122",
      "r127"
     ],
     "calculation": {
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "terseLabel": "Diluted (shares)",
        "totalLabel": "Weighted-average common and common-equivalent shares outstanding"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations",
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]",
        "terseLabel": "Weighted-average common and common-equivalent shares outstanding:"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r121",
      "r127"
     ],
     "calculation": {
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-US": {
       "role": {
        "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.",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "terseLabel": "Basic (shares)",
        "verboseLabel": "Basic weighted-average common shares outstanding"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.cognex.com/role/ConsolidatedStatementsofOperations",
      "http://www.cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetails"
     ],
     "xbrltype": "sharesItemType"
    }
   },
   "unitCount": 12
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21914-107793"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21930-107793"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21711-107793"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(4)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22694-107794"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22694-107794"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22583-107794"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22595-107794"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22644-107794"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22644-107794"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22658-107794"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22663-107794"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=112272810&loc=d3e31137-122693"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=112272810&loc=SL108384541-122693"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(24))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "250",
   "URI": "http://asc.fasb.org/topic&trid=2122394"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1448-109256"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1505-109256"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1252-109256"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=SL5780133-109256"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=SL5780133-109256"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1337-109256"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3630-109257"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=120380238&loc=d3e3842-109258"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=120380238&loc=d3e4984-109258"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "http://asc.fasb.org/topic&trid=2144383"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=121640914&loc=SL77927221-108306"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=6828210&loc=d3e70191-108054"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8924-108599"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9031-108599"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9038-108599"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9038-108599"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "a",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9038-108599"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9054-108599"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=121593590&loc=d3e4428-111522"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=121593590&loc=d3e4531-111522"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=d3e5033-111524"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=d3e5074-111524"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=27010918&loc=d3e74512-122707"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10149-111534"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10178-111534"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121553693&loc=d3e26610-111562"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121553693&loc=d3e26626-111562"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121553693&loc=SL6284422-111562"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27161-111563"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(aa)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27161-111563"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(aaa)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27161-111563"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27161-111563"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27161-111563"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27161-111563"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27161-111563"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27198-111563"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27198-111563"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27232-111563"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=SL120269820-111563"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27290-111563"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27290-111563"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27290-111563"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27337-111563"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27340-111563"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27357-111563"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "320",
   "URI": "http://asc.fasb.org/extlink&oid=121645371&loc=d3e27357-111563"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(4)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599878&loc=SL82895884-210446"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919244-210447"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919253-210447"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919258-210447"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919230-210447"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "79",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121647567&loc=SL82922352-210448"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121558606&loc=SL82898722-210454"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121558606&loc=SL82922868-210454"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922888-210455"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922888-210455"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922888-210455"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922890-210455"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922895-210455"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922897-210455"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922900-210455"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(g)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922900-210455"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(h)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922900-210455"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(i)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922900-210455"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121582814&loc=SL82922900-210455"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=121590138&loc=SL82922954-210456"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "http://asc.fasb.org/topic&trid=2126998"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=68051541&loc=SL49131252-203054"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/subtopic&trid=2144439"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(5))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16373-109275"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "http://asc.fasb.org/topic&trid=2144416"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.3)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.4(b))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.4)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(c))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "420",
   "URI": "http://asc.fasb.org/topic&trid=2175745"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "((c)(2))",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "((c)(3))",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(5)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "460",
   "URI": "http://asc.fasb.org/topic&trid=2155896"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21463-112644"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23285-112656"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23309-112656"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "http://asc.fasb.org/topic&trid=2208762"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121556615&loc=SL49130531-203044"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121556615&loc=SL49130532-203044"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130551-203045"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130556-203045"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130558-203045"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130543-203045"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130545-203045"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130549-203045"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130550-203045"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(g)(2)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=113356391&loc=SL49131195-203048"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=113356391&loc=SL49131195-203048"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(i)(2)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=113356391&loc=SL49131195-203048"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(j)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=113356391&loc=SL49131195-203048"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "http://asc.fasb.org/topic&trid=49130388"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "http://asc.fasb.org/extlink&oid=6409950&loc=d3e20396-108366"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(7))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "710",
   "URI": "http://asc.fasb.org/topic&trid=2127225"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(ii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(01)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(03)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118257860&loc=d3e4179-114921"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(8))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121326096&loc=d3e4534-113899"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.1)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)-(4)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.12)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(3)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.17)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(g)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(g)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=115993241&loc=d3e301413-122809"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.F)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=115993241&loc=d3e301413-122809"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120383193&loc=d3e11149-113907"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120383193&loc=d3e11178-113907"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "740",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120384911&loc=d3e23163-113944"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e31917-109318"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e31931-109318"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32672-109319"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32687-109319"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32705-109319"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32809-109319"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32840-109319"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32857-109319"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32621-109319"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32632-109319"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "217",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121610041&loc=d3e36027-109320"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "740"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "740"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "740"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330215-122817"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.24)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=120385591&loc=d3e38679-109324"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=121647850&loc=d3e4845-128472"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=121598580&loc=d3e5263-128473"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "38",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=121598580&loc=d3e5504-128473"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859824&loc=d3e6819-128478"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e7008-128479"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569616-111683"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=108774443&loc=SL4569643-111683"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(3)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c),(3)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=121559654&loc=d3e5710-111685"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=121559654&loc=d3e5710-111685"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=117331979&loc=d3e41228-113958"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5579240-113959"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5579245-113959"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5579245-113959"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5579245-113959"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5580258-113959"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=d3e41620-113959"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=d3e41638-113959"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.8)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5618551-113959"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5618551-113959"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5618551-113959"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(c)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624163-113959"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624163-113959"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624163-113959"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624171-113959"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624177-113959"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624177-113959"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624181-113959"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.9)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=d3e41641-113959"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=d3e41678-113959"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "182",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121582272&loc=SL5629052-113961"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "25",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121577467&loc=d3e76258-113986"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "815",
   "URI": "http://asc.fasb.org/topic&trid=2229140"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(1)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(2)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=d3e19279-110258"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=117815213&loc=SL6742756-110258"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=121572278&loc=d3e13433-108611"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=75031198&loc=d3e14064-108612"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=120253306&loc=d3e28228-110885"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=120253306&loc=d3e28129-110885"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=121605123&loc=d3e30226-110892"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240200&loc=d3e30690-110894"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=109240200&loc=d3e30755-110894"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450222&loc=d3e30840-110895"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=98513438&loc=d3e33268-110906"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32262-110900"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121593497&loc=SL77918431-209957"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121603541&loc=SL77918627-209977"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121603541&loc=SL77918627-209977"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121603541&loc=SL77918643-209977"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918701-209980"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121568110&loc=SL77918982-209971"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/subtopic&trid=77888251"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121561866&loc=SL77919311-209978"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121576215&loc=SL77919396-209981"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121576215&loc=SL77919372-209981"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "http://asc.fasb.org/topic&trid=2122774"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)(i)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225877-175312"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)(ii)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226008-175313"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=SL51823488-111719"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=66007379&loc=d3e113888-111728"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=109249958&loc=SL34722452-111729"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122625-111746"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122625-111746"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122625-111746"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(4)(i)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122625-111746"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6801-107765"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226000-175313"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(4)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(5)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(6)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(7)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(b)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(e)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(e)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(e)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=116651436&loc=d3e122739-111746"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669646-108580"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "http://asc.fasb.org/extlink&oid=119991564&loc=SL119991595-234733"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(1)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(2)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(3)",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669646-108580"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(6))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.15(5))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(26))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Subparagraph": "(b)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120252992&loc=d3e62557-112803"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669646-108580"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120252992&loc=d3e62557-112803"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120252992&loc=d3e62586-112803"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Subparagraph": "(a)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120252992&loc=SL120269850-112803"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "405",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6957935&loc=d3e64057-112817"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "405",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=116652737&loc=d3e64164-112818"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15)(a))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669646-108580"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(11))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(19))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(22))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121643868&loc=SL117782755-158439"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669646-108580"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121639165&loc=SL117783719-158441"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121639165&loc=SL117783719-158441"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121639165&loc=SL117819544-158441"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r554": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r555": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r556": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r557": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r559": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=d3e637-108580"
  },
  "r560": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(ii)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r561": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iii)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r562": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iv)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r563": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r564": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641"
  },
  "r565": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "210",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=118262064&loc=SL116631418-115840"
  },
  "r566": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "210",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=118262064&loc=SL116631419-115840"
  },
  "r567": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 1))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r568": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 6))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r569": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 7))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=d3e640-108580"
  },
  "r570": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 1))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r571": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 6))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r572": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 7))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r573": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 1))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r574": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 6))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r575": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 7))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611197-123010"
  },
  "r576": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5D",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-13D(Column B)(Footnote 2))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=SL120429264-123010"
  },
  "r577": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5D",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-13D(Column C)(Footnote 2))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=SL120429264-123010"
  },
  "r578": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611379-123010"
  },
  "r579": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611379-123010"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=d3e681-108580"
  },
  "r580": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611379-123010"
  },
  "r581": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401592&loc=d3e611379-123010"
  },
  "r582": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "http://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014"
  },
  "r583": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r584": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r585": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r586": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r587": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r588": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r589": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669686-108580"
  },
  "r590": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r591": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r592": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
  },
  "r593": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r594": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r595": {
   "Name": "Form 10-Q",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-13"
  },
  "r596": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1-"
  },
  "r597": {
   "Name": "Regulation 12B",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r598": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6935-107765"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=d3e689-108580"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL34724391-108580"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL34724394-108580"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669619-108580"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669619-108580"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669619-108580"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669625-108580"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669625-108580"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=d3e557-108580"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(13))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868656-224227"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(24))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.9)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3179-108585"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3213-108585"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3213-108585"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3255-108585"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3291-108585"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3291-108585"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3367-108585"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3521-108585"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3536-108585"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3602-108585"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3602-108585"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3602-108585"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3044-108585"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=d3e4273-108586"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=SL98516268-108586"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18780-107790"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(h)(1)(i))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>98
<FILENAME>0000851205-20-000011-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000851205-20-000011-xbrl.zip
M4$L#!!0    ( &6!_5!8)D*YC@@  & Z   ;    838R.#(P,C M,3!Q>&5X
M:&EB:70S,3$N:'1M[5MM<]LV$O[>7X'*<ZD](U&D7OPB.9YQ;'?J3MOD,K[)
MW*<;D  EU"#! J!D]==W%R!MR9)MI;DFEJW,1!8)8+'8??;9!4@=?W_^_NSJ
MOQ\NR-AFDGSXS[M?+L](H]5N?^J>M=OG5^?DIZM??R&]((S(E::Y$5:HG,IV
M^^*W!FF,K2T&[?9T.@VFW4#I4?OJ8QM%]=I2*<,#9EGCY!COP">G[.2[X^];
M+7*NDC+CN26)YM1R1DHC\A'YQ+BY)JU6U>M,%3,M1F-+.F$G))^4OA83ZMNM
ML)*?U'*.V_[ZN.TF.8X5FYT<,S$A@KUMB$X8]P_2*#Q@AZRWO]\YVC^(CO;#
M/F5=FC(>_B\")=O0W8\Q=B;YVT8F\M:8X_R#7B<XZ!=V.!7,C@=1&/YKV'!]
M3XY3E5N84(, _]7+69)F^8UM42E&^<"M"07@@+H]ILGU2*LR9ZU$2:4'>A3O
M=OK]9OV?A$&X-_1M.Z'[-T0!K91F0LX&/YQJ0>4/30->:AFN1>J;C?B3@\J@
MO;N<^A4=P&@I<EZO,.JX-5W<C$4L+.E&0;2XH-5+2<#X7 \SJD=@+:L*$%1\
MZ[7U5JW-*<UXHC1%" \(:,,U=@-MSRX^7EW^>'EV>G7Y_K<'U[T!JVR<7#;)
M1Q5S;<G/ ?DDI.36-DD"-T0Z(W9,[9N=_N%P'>?^7AH<M G>;9Q$;W:B_7!X
M2<9TPHGF$\&G0"QV+ SYHZ0:8"IG<+]08!J5DQ^5SD@4MOY-5 I,,\KY#?S1
M184/,-+1RS-2QQOI'35@&C!"-B/7N9I*SD:\Z6U568@I;DBN@*%!*A4YH?D,
M0L;JDL.2@+,=?8/I*,G@"G4C*4W@EB8J P:QRO=;ZI#SA!M#]0R[9/2:P[QS
M,@W<8Z ,3"D=]\,<V"$1&K@>NN4PW <OF8Y%,B:FQ(^[\5.N>24$%Y )(R$I
M8'Z9"CN&!9J")TY!E%N :HK!,B<PC)%X-F^&EXF"[A,HX"05.=@9779GUR9
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
M:70S,3(N:'1M[5MM<]NX$?[>7X&3ISE[1F^4++](CF<2VYFZ<[VXJ=M,/W5
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
MUT;B2C=C$C\5/%.T4_BNLSH[=^_\SJUC=<4UG_(S\X:]?P%02P,$%     @
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
MH<BI?W'PRF(;G>$HXSK":3K83 O%L^ H-T0)AB)[X5_!5XP\]YAASJ3&QIF
M: B!6BMI$.FQK2&\';QA=_#JM)UWC_Y::0V'QZ]>OCPY.5D]H:N]_L%+K+5^
M.3ZZ,CW5'71/;YSI>@?=< K_Z;Q,+X8$41?G^I!?GGIJ^^W507"K![TO+^$
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
M!Y[M?SQM''XZNN+3 :^N;YQO[S?;M3%W/J+F>K/5@-^;G8_ HRUHQ\9IL]/
MM_FTO7YT4JU7X;P],N;.^LY1K?,V\;+37 <>':;(W=M.\_#3+6?'\>BM=9D+
M!F6,!9Y9CV/F6&342$(9XF7B3DFAKRAT=DDA@<$SPM%F.*1<0B9#9I#!F8B6
MQ2"%]HR4B3LES7Z(9E>:CRL9A70ZDSR.+:.068UL1A7S(6A!+"%EXDY)HCM(
MA*[%]HP&/ST :ZS)F 3+>IP,QH07QE!KK)0_G;@3N!=$NJ3S1"K/8H5SUA :
MK /+6JH9V-5_CX 683  7MF\.YZ'3,4I@"2A.X1/@]R'_OCG][FQ>3L?GBU*
M[ ]=SD0>'IPU]G=:S<.W1\WZ'@'[N=/LO .[&^[1@6=UJJQQOH8:9 .>L],.
M_^P J?RQ)0P(\*[5W'S;J>[OM&OU)MC/0)/.9"UA8W_OK''>.JRN[QPVZLU8
M.]_Z+"+R7(.9$[4%W]MZD2FA0J8Q#HP9%P&F)#PPI]]RO.]<!FS 5XH:\<"=
M8<HP"_X4Z$3CL-!!.?2-9< 7<(Y]H[_-(/@D*$!*C*%;Z_<- )J6"/]]=G7*
M!W.6?EH[,7T__N=3& POQ0.>+[JTEE_.,^/:YAZNDH^D";@VZQ]QC>SQVGJ5
M;-=;AXW]!B#>.FJNMXYNH]N 9P CP/,:7]FNK>_19OT(5<\;?'L3GGO8/-S>
MW#F"O[%Z?D0^.T!5^J@RPCCH!D%"RF^)&4+*<&-DC-BMO/[ &H]9WOU#N%X;
MP:G:T2L_ZI_T^GX0NDN,^=6(_OMHN[[!0(33[?'H2WD"1ZQ9]T?5S@:O'E9Q
M]?P GE,[O(TY/(M7ZRT0X8[5 ..4)P \:=<(C.CZT5GU?.\<CITW2"U">\X^
M!R8E,E)GA!+PA)'$F3)I2*LHK?+@;1"Q\CKV1OW*63#]P<^M _])L^!VY'7,
M#9#PL^;&QG]&(.JWNH-A?UPV8C"V/NHMT]T^3K<8)-X$O]6=$&=1=,+S,^AP
M#WV6VBN4RJ5QT-'@N&"9&>-5%J)W@AAE=-0KK[N]K[7!RYM%F?HAAI06% 9W
MU))*=:9>#<;5PH!*E7&YM5?#LV/H]4'>.6ZG E3CWUK]Q+0;9:-63\&X@,?=
MO,?D^5</G;9A %0??QL7RGHUI>\$UQ]QGRYN%,8E"BZ^@6$!WV,>^I5Q@\*=
M!=W>;/WOS5)'MR]^??'3S;L?CVEY\6TP-/UAJE/T^J(:&,(7UUT=NVRFOW:J
MR%+1K9M'+KY?/.3EC8ZZN$^2 ^-.F\J!B]\[P0Q&_?!Z^OCQP8M;7!R[^)[N
M<2<.CPC)S[_[)P75AG?TZ,611_;H:,SFFUTV+5+W:F]W_=&]^2,QROEWZVU6
MTXRB)V?UC7[[D7C<8O5;*B[)'B8-TJGB6A?_1+_]B!&P>/WV0"GZ<_UV?<Q?
M9I]<'/3Y%WB'ZZ>.C3(S[/5_4#Q\=7WZ<3UT>YWD'7]]VX<*\1NW>'FS]=^3
M3H^87IL_2:YD/> ^K5_W([+^1@\@BR02%AQMH5A4U!C.A(>Q0JD#M]N.>T M
M7@^HF?6 $9&!J+4.G!3FH0-,M&!Z(<]Y!&-L&@I:$$%Q@P,WQOY/]( &_>L1
MX=%'R:R)VD4?,)8VT "F)YU:/)3HI^Z!Z9@/!\DQFGSU\+#3XW;N\F$U="P\
MPN>=%*1-%:$OG;&41Y>NF3A7R2/K=9-OM7::@WEXQU3WY%Y_OKSS$9>]=MF2
M1YMB-"-Z!M (3[UV/F*$ M.,Z("0%A%SIR+'3BT--&O>Y\EQ,^T/)@?G]XTY
MSH>F71"8-%5&$$V),(A1;0P#-4*Y\\8I#J)C:6#:"4.3=X/?,/UNWCT8% 0?
M''0D5@20:88)&6$8!>U!XUGK@])A:?!9<V[4&;535O%]DUH%@<Q#'^K !7A
MF"D3E*4(6\1P$"$H<(">#;)Y]8"SP3LNJ:9(,XL(B!9L(X\2NL)@&N;@.A=9
M/\_?IU=&!QRBD)(AQD($KQZ!M1FHH)1(ZI8/T&?3ZO,'UX1@&57($B3 >11&
MRL@T%2X2<"LE63YPG]X6F#^JH'PL FL;G"+)F-+:.?"5*/P6P"ZW8OE0G8L%
M,7^@4^EQT+"!>HX9)U8K$QE/*X=H,A#M\T7]BZQC9S4=<<L.(H$3+&/*NT\(
M: L#TEI%N8Y4Z:6!9DX^\*Q@(B)R)A4.W#$#.D\$[YV6%BQ8!^ M#4S/[0//
M"!\MO%2<<N=2\7WG;023,TJ,@_*:";8T^"R #SPCR$QP.*D@#F(.'%]O#(K8
M"!D(N,7@'DY#T_3I@_/+H912S)S.9M8@,JJM,R0H;AG30D5FTI860M'HT21+
M8"F@F8-2FB%,EDLG,0M*8<H$-U8;$3'RUGAL@U9+ ]-S*J49XD-A&"FBN8\1
M,V^P44)XB@)"41DSL>V6 I\Y*Z59#BDPN:4E1$7$ ;T WW$$Q*@P6FKRC)#-
MJP>PP)PY%ARGDDFD-?8B;2M(&,')@YQ#;DZ1]?/\DX8\UEP%QYP%-2X8T5Z@
MX"R3F(* ,G3Y )U+8'8^X$(O1ZT=TSA@)BC8;,IS% SUR"N#]?*!^[R!V3FA
MRAWF&AF.95I'H*Q-5K<0UK$4L+/+A^K< [/S 5IY*@4)-DH$T IM/0872RFM
MO @@L9\O/:O(.O9)\L8<XFGC!RF)"@QI!(A8IGC$EG)F5%P::.;D \\()H52
M(2,BG-*!,1@[EGIGHC"1^(!)6!J8GML'GA$^B*5D8RVP &N3!&YQ6BF/"?P;
M-(EL:?!9 !]X1I!Q'Q4BWFL*X)G M+.44D$P@9ZED^2DY\D;7QJE-*MT;@MH
M*)+,0Z69C"BE\4=),.-"<W#5EP::^2BEF67=(Q8BEX1I9EA:K,V#\(:1:)DC
M0<2E@>F9E=*L\&$:[ 4%?28H848K(Q&7'DG-J:8LVJ7!9_Y*:5:0"9E&CK,.
M/"9FP"A'GGFOO..*,$?5'!80%UD[S65E\TW_2D0.,%F,'&=*1NTPEMPQH9#5
M$LGE W1N^:+/#RYV@E&,":8T,HZM,0A[Q93EPF :[RQ=4FQPGS]?= ZH"AU]
MU JG66>*C,81N<"IDBF_,,ZCB,,RZL_Y VV5%]&!1$9<,,R1]@:!TRX1<Y((
M)9YOW6R1=>R3+.@E#EMLB*$*3%?LE+5(&P7F4'1IOL<O#33S\ !G!Y,5DDD>
MI0E$,HRY-=H+R6$ "<^DQ4L#T[-Z@+/#)U5&B P,3A,XHS8HQ:*6W@HDG?7B
M&2L#+*,&>Q+(J ^!$4Z=PYJA$+1R*B@>A=(&A)^:0_&3(FNGN51EN;4JQ7.-
MC2>.4A:I,H@;R70DA$MB.%D^0.>6F/+\X&K.;#34,>,9DT1:XFD(Q,-O.@AE
MEP_<YT],>7Y4QS-YB@=JE&$\6"NP)LC@B)423,VC -4RZL_Y ZV]0SA([ 7%
M+,* 5<P8%2@H6]"X-"S^>IJW)N^/]Y[[^^SRXS]P1]-WK;/WX4MHWP3Z\J2M
M[O%H.!B?@;\#[8\TICJI\I7>YFT__&>4=O.]IR773DV;;H[ZJ0A[05;W1+"G
M30S("Q,9V-@6_@@O&1>$"DD*L.3T^3![5DZ3@A!(<NP"!I.04,2HTU8YB05R
M40DE.2^"!,J[INMRT[XJAWS;ON\?]_H@H?_N=?W5G@O%$SHE@>]R;SBVP3-M
MM4HA!J-B*J+AJ?*6$^V*( &_1^"]W7I_3)>SDKU+QEZDC=6.1!J(8@Y1[7G$
M3GIC@Q,LF"5@[]I@$(9_&W<42N&[;/357#OL-8W8&\:4-6"(!H^H)99R$I>!
MOKN]+Z$?\H/N>K##DL!+1F!I*%5I6[$@$'.IG!KU@F,DD90L%*%DS[T$3CM,
MO%H[2"Q*AF_)V.5@++C[A!,5+766$4L4%]%C(Q4#NX'Y I1@^:[(K8ZZ<(=C
MTRYYNSR\Y4YJ*Z/R7&+F<-IKBSOG%;(.(1Q5 7B[G 2B!2&0M)Y8K8FP"(.L
M8QHY@QQ#A@H9!"&+GTU^L9OCFOO/*!^,IRBOJ>HWK=ST>_7@6MU>NW< -N;[
M]V\*DC8>M0,(N/8D;87IA>+<4QC51EH<J)['#CT_"M)DLNERVNI]SYDKH"Y.
M&L]1U7K=WO%X^\WNP>2JC=.TB=MRUK:TW'FL&97CG7&"U3SM[4$<I@1)0Q97
M? _ZPU<[:4.]"83I:S7OYIU19U92^-OC>O-3_@E:"CI@ "Q9+8BTQ9%SRK76
M2AA&A=.6$J6<HLYQ:JA?7+R7&17-TZI1&21EFGD9C9;C]1U4:$J-QP5*#7^0
MG-T)R4-PP_&^V&]:IG_PW<C+#*3K\V>"/V(KZ06%LS2.YVJ T:AM4,(A13SC
M:?6RM\RF+4L8EE&(Q1?73S*/L"ARFQ,68TS[8:4%Y0R#"#>>4IH"YE(35(#Q
MO7#PS'#T..\QD1K^PQBS-&TKS817/DH%8T<7P-AYHB2(11D_H 8I8<Y'SPA3
M'H&P<U@@&U74+)H"U,I81(!F.(+2/"#A2'ID!;B':8-9E_9/!5"H"5@NP0CZ
M@2R,11D^!!ST-'HXEIH%PDR@AGN*C4A_]#*HG^=&9Y;!L[1/J F!.- ^A'M#
M&8W@$(A(M<>3$F@%'SLW)M$+,F@4CY% 5PED//.1VLABB,Q0I[W%EBW!H'DV
M6&:I:9@WX"XS"9J?62M!NR@CB4/61H'B,FB:1\U_+LIPD8PH2Y10CF$F!+;>
M!HXIL>#>1!.70<<\'RXS'"]I*9A1Q$J!%2,^?8Z4&&Q3M?6 ER+!._33,QP8
MSX/MN!Z.>X.\*%K&I-W!)-%I=1>C*"B4[&B!,'-<.5F 6<W%@V>6HX<2Y;$,
M,3(8/49KJ2@76'NFM+6TR-DVC\P/6Y0!PQS301ENB1Q7YC"<!N%C0,QBR@IM
MECTG(C,<(T@$%'APG G.8*1HX4,D48'#:>$K+? 8^;DDX$49,A8A!F,E;20+
MH\1J$[0/R J/+&'(\0(/F3D"-,M"IHQY!3K?>"D9]EICAW30*:F&"JD+L#OE
MWZ8- (7=5@C?2IEY,^KW$W9IKJ HHR<ZK!!Q%E1^JBD$>A^Y:%"J!BS!!BA
ME=E% V>&(R=P:C$!MT:3 /A(Y4FP""P$2J2R'"W^R-GJ?@F#8;JH?G8<;DFU
M5J\_K(=^Y^JDV:5#+]R$WDR7Q0>!G9;"&L.0(4IBHU1 PK"@'/MU)_3F1<M%
M(88)5&-EP#8UG@5IM T&.ZI!L!,D> 'R)!967A1X?HPBL(<]N/,$["_ 2SN0
M'TQZ+R+C')>L*)1A/LM@@S'*1$\Y<YAI&4!R$&^H-A$+D!8%"/\L+#$*.<GA
MN-*1@&OF4<I$$5I'XQ A1J1-F_$"9\$O1+&)N\@X#GJ][W4/BFE0<&YQ]"EC
MEUN6S J0"TBD;02=\F!:+ $CYF!I%IP4G@@:5-H#UD?X5RF'+,&6,R!+B$6U
M)WX0E-(C'9N8PAEA,/;8.(:4-);KX P8F? C<@7P2!>*$@6=O!).&LEMD$1P
MQL#OY"A8$PD-+(3H"B 8YETO93FT!=B^$T9T1ZDMEV!W)NMA7D_O 1\O;G!Q
MY.)[NL/=$5%%'>B<& P#%S8$2X*G#&0/,^-IH$)0+!^&]_F7X+>ZT*D'N6V'
M253Z[[.J.>SUW[3-X%8!V?4<Z)C;48IM[^0'K45&_V:HDD0JG7?@95JFG;..
M(J*%M#)J%&(!%,./X9565_6.@[]<\'Y6*-@,UISA0(WV(+NYMI0I[+B@6OGH
M4#'2$!\.VZ1"P6@P['52<>;NL&_<<+#6]3NA/9Y/&K3RXZ)@AUW@(HE&S#1C
M)&I"1314:,PE<;$86OCQ0VZK^Z'?<V$PV F#D!9! GS389@>7Q#P!& 50<,%
MZ@WCW%AK56#>$*X1IKH ,WX_!-YXAO;VZ06!#"M'?0J&8"+!**%IEW<:7$K7
M@O\7I,CEXR&K]XT/'=,_*@I.CF(9K ;QZ"-SW%OGN;,!>>*<-MHL?J9# 4S'
M62Z%"%1Q[1!(0LN\MRK:B(6-C"'C>"C -M7%,1UG"!LV\+\@!>$1,62M(9%P
M82+UP2NB"[ M<L%,QUD..:I8%&F$*3 =F5)*"*\H3T48K=0%2 8KFNDXRX$7
M$3=.,VR%9DA8+:B,TCE/D5'@:R\I>,]N.LXROX\IBP1&6"G/D'/*6 P6HQWO
M38Z%6U+(GL=TG.6^\=@2@A26+&TRA[BRRDCN,#8:6X1P@0H ?KMNV.[(M(V=
MX?S&0ML_\Z\["&):8FU ;$O%E';6X>BCQ4A0)5/I@I)8Q=7R\Z<7MJEV-K'8
M,\PTF'*12HDE8<QS'DTHZ55<!V#^[*+"":ZE,<8&%H,RPA!PV8E4QDNF+E;&
M<2**2:J-[F[+'(?-COWGEV+6S>@;SXB8A7?"F(DA<NR]94 32U+6J0T1S">/
M90$RR4JR?)\LL]HWBG*'& V1:,DT=8DL*@J'4W649=);ORIKYJ^\ O)8$>1T
MD(9)'*UVJ8J8EJGF?G#%*$OU2*"_G@JXU]GZ+B?N#+O 286;%N*$@4_OD92"
MLRB4 4&#A/(A"L,44@4J.OU/\ =Y]V ]#/*#[AWK8&N]KI\>"_[I!_6S%)J^
MS#4[ZI]\E6B6#WJ,8/GJ?W?V+RY_<*89]9A:S:Q@CC$:E8I$<N<U94(XN<B;
M5Z<] ":KG2\J4[OIMZN.^!D-,V>:/4T"L_'$N("",YHA3I6/%%.JI S8.+[
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
M^V/"DDG\=>[]\6=^FD;7V[YQXQWO1]U\N).R(T8#OP+#JYM>;OQ#;KB/GJM
MG$,,1:RU\HZ2J+SR%/'X>3V9SXA2E(T_"*)6*CZXO&/:@[]6,ABBDV4Q<*_3
MX:ONJ.-[P^GQE4K7=$)Z:G9@S/&K*7??]GN=\29QT+K]?-AZ,QH &J&_<>K:
MH]29:X-!@/_[NCD% 0!='L:B8#S)Z^FG,[O>^_*>['QIT.K('VY\:6[JP^W.
MI\/J^<9)<_W34;7^\;16_TBWZV];#?*V75VOM9O[>^>-SA:MDCWRGM;:C?-C
M^%L]K6Y^Q,WU#52M[Z':^=%I8[_6:M;7SIO[G]I5\BZOG=?:M;8ZK9[ICNN\
M[6X?;IQNKV^<-L[7>..P>51;_\AJFWN\MMG S<-VN['_D6ROM]JU\X_T/=UI
M-3JG[>U.LU4]W#EJP&_PG+/M^DY[>_V U>H-7B.?\BJIPG.W3JKGU<MKX%FC
M)MD3S<[&66USY["V[N"=MN Y>PRNQ;7#(]K<WSIOG,,['JZ=5\]]K)ZAT_?U
MC6%U%YU\#H0JCY'.?! N8]2&3&O$,^")\)%CJ[1:>8V%?H&T_//E3<;<8\S-
M:U@MBISYCHG[#4OI@4+VAVRC(LC^IU.(Q93]3]<?CY#]$AMO->,*D\B4QIH3
M3S227EN%K11)]F,-:@%GXP^"HO^?O6]M;NM&MOTK+-ZI>S-5; _>CV2*51I;
MR6@JEAQ;F1SGBPM/BXE$ZI"4;?G77X"B1,J/6)3(+7 3.6=D2GQAH[%7KUYH
M=%?L+Q?[/]Y@O],"H^34(?ER DPY =9@ <0C%YCEBE&?L%\G[&?MPOY'DS<J
M]E?>_^CSL0+V"QY8Y,32*!$SQ"GB*#=6H$3[<<!^SOOQ#/LK[R\=^_$-]IO@
M T72@0TN).PW&"QA'KSFF%KO.<()^RD5/4I)J["_\O[RL+_R_@)Y?V+Y2&%&
M@B*<^>B4Q5Y(X1),I$_T8<[[<>7]6X']] ;[O1#.6\Q FN" 16/!,L=!1RQ=
M()(HDPN/2-+C%+<*^PO@_8UM:\39?^W:UG@ZFDQS,XWQE[<W;J:.K'OJ[K(@
MOS)WVT?ZFQ3[LT6/XD^CD9_L#?VK,'XW<&'R:G3J*[ZO@.^'3Y<T?:HP)MA2
M\$PQ8"A8,%X*L!('ICDAS.INGZ,>S1E/&X?W^]U-K:'V=\/AAZ4[;"W>%4%T
MFQ2X*]ZM"^\6.C;G46LJ,0A-$MZQY)<49P*,PIY3@XF59(9W6C0A8S>'=P70
MV8IWV\?OFA1U*]ZM"^^6M%MN(C7$ O'< /."@@W"@W4&"6<33=<I?M>XQRN_
MJWA7^5V30F;%NW7AW4*OM,)&'A/ B01HP#!"H*W.>J7E-)AD4)/XG99I?30A
M5^X4OZM9V ^8Y9_&H\FD<U6H9%-:Y6KB^4/.)FP?T6U2R)S9^L5X% ?3BO2K
M(/VK)>7262FP-!@T53PKEQ$L$1J4B#PXK@4C.1L9JYZ4Y66DW>GF:@WOW6#*
M0LNQL0A2W*3H6;'QWMBXI'(:)B7/V_0ZAH2-.7?+6@;$"$^Y"T2S%/5CIGI(
M-1'V%X*-!7#DBHTMXXU-"J05&^^-C0M%-&*"J:82D LR8:-&H"0W8'QD7&/L
MO!3=/F&LE]S=[F!CY8W%F*\UO+%),;5BX[VQ<:&>4L.R_A%!14LS;T1@%5,@
M%+54.FYCQ D;95H1E3>V4UMM8RKHRS )9NQ.>@E<WH73T?E9&$Y['3/TG3!\
M.QB&].'#MYW\7_AP'H:3W!&DIHMNN<IZ;?6]H7^V,/O^E8&KCUC%1PR6JT"H
M60:5@42:\VDP94 10T'[8#T-@A@>NGV*>K21(A UHZ!F%!1-@ILMB5 A;VV0
MMY!3+6')>!Z!9 GMF+$8K!,.I*7&8^Y"=)D6JQZ2NE605P#QK9"W?2ROV4H
M%?+6!GD+E53QH(A5"I3".4\^:#"6"] D:$*XB$+S;E^('F6T59!76=ZV05X1
M+*_9 _ 5\M8&>4NIHS$RYQ@![@4&1F)(:.<52&&)4(9)XF.WSU6/DIHZNJWR
M9AM31U^%T],TJE[G;1B&L3F]4C:-/QL,!Y/I>-8<=N/"YOT*,[2&\C8I;,[M
M_=.5M9,7V+MEZNH([N$(ENO<6AR)L($"H?F,*/(6E"41#$*&<L]\(#1Q7]3#
MO GN6\M=M2L'H'7<MTF%LV+?)K#OX])Y448Q=P8,0P&8$P(,M@*X27:++GCJ
M4,(^U2.,MPK["B#!%?NVC_<U*756[-L$]BTT3R:R?L,=!)IK(1E"06.4"]X%
MYR5#ULVRYHGN$=VN6G>5^&T;^!5!_)H4/2OX;0+\Z%)S%\R$]@8<H3DMWGFP
M'DN(F-B HB=2L@1^E/<0%ZT"OP*87\WN?%AVYW1\X:87LR1.=V+&;\.D\]WA
M:!HZ6'R]*=W6;G@507P;SN1<6/CIE8$KTJ^ ]$>+DI_T\.,!?B,Y)XGD$L#$
M<6!>.M!$(,#>.1.%#T2B?$"T)[5JU5Y7D4QWK5!2RGP4,()K6[3- 11!_M>L
M^GX,XY$WDY.*_>O'_H]+V$_?6,I%XO,(3+)93NW*,H=E8(/!B77CX)#)<*8(
M)C^T"OP+8/I%@?\&<>3Q1]!6\"^"_3><X5L]P ,] %[R /R-S-T:@Z(0!*;
M7"3) S &QM@0C?$"JUC9_PXX@,K^M] !%,'^URS]5_:_.>RG"^Q__N&-)]@K
M8AP0QQTP:WS"?HX@$H6$2VZ=Y6:.E?UOM\[?QC3G@^'4#-\.[&GHF,DD3#N#
MLW,S&.>S#Y^H_FICHO^.9[LT*?H?W%CW*"Y,GYLZ3B<W/1YS\?3W@]/3ZA-6
M\0FO/MD-$(PXQJ0%C)P )DGNAX-4\@Y*8"*P<-+EYNX]+FO>2\U[V?F\EX:D
M[XJ &T3 VYHX<41QIW'>"N6YQ;D#)5V$X)AV&&/"<UNPYECQ3F6_5 C</B;8
MI !<<7"#.'A;&:;6$\L3!-*8V^<D;P8J5X%DE* 0 N$NJ,H$*PP6 (-%,,&&
M9-"*@!M$P-OZ***18<$)")D/P#$J0 ?D@.2>"2IRS+RJ3'#;]=$-%-1Y]%D^
M.@_Y+,3P;6<P=*.ST/GN=#29%)+_W(*F$-\U*Y1.TNRE1ROPY)L%<#"S_\_)
M^M47K. +GA_O93]PI8WNO6&!*.N#!6ZY!1:T Y,L"%YJHK02'CG3[8M><O^?
M^8'/[KK"[K364.3654;;K0X139:.J/"X!GB\O(%'$X43N4".)[F/CC$*#$H_
MM-721:-2+!2Z?8Y[LI'S@H6 9 $DNH+D-K#)0K76"I(/!\G#!8<,VEND!0,L
M,09&&0+K9>*0@F 9J" I0IAEVBI47N7PRB0K2&X-DVRR%D4%R36 Y())$H&(
M$"$FPYB<?H0C:"4#!&.\$X$IZWRWKW!/H_)JC;>92=9TU0?,\H^C<?J*8<==
MC,=AZ"X[;\U@N&%-=L>3$M:@NMX&^KD-G\Y->#Q.5W,UC)^2,3/N_RLDKQ&.
MS8?J %9R /O+2BO2"CM+"4C++##%/=BH#4CLC4A.(08ANWU*VU5WJ$@67%,.
M2B>Z:Y!,*\@U!G(+ENN\XS%H#RSF)'M/&"BD-"AN0C 1L6!$E@+*ZZM;)K^J
M(+=M3&Z5#?0U:)ZK;Z!7)-P<$BZ)HB(RXSP/0'3N($L%!9N/H'(LF>;4$JI,
MMT]Z0GS>0':M&^N5ZU48;-YQK0*#:U U;V"P8EUC6+=@?5$YIHU*K$])=_5#
M\R# ",6MYPY[9Q/K0Y_76=E2I"N \!661;I=LN7!\%V83&>'ZJ_22,O(']T.
MAEOJ4?H;FUYM6!V.AJ/K+:P*[BN!^\&R;AFM]H$Z#H;'!.Y:1+#4,"!!L&AQ
M(!SK;I\VU"ZBEM%JU_[]=K#90I,]*^2M$_(6?%8ABJEG#IRA A@6%FP@"+SC
M6-EHB"2^VT]+A)2W55\FX:J0UV*6U^@Q^0IYZX.\);DR.F-B^C_P*N $>5*
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
M1=2=%5$/AHEC3D?C0?@L"WKK%8$MYYEW!NAK&UX>A@K)JT#RT:W<7QDB8T0
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
M27YL-%PN.=(87P0_Z\<UG&SN)%I-_MT\\<Z&_'FA>U2<O@].WZH02R2VAOD
MAA.76VMAT%$:T-YI3PPSC-)N7X@>:23#H&8 UPS@G:>B%>76@W)+F^668(F8
M :P$ \8Q!ZVU@B B34A HHRFV^>DAQM1&&H:\"[KWC,V6FLCM(>1WAP9KEA]
M/ZR^53O6)(-QPQ5XFM->30A@+5; D'!>R"B<E/G$AFZD$V(5@PLGI+4P0C.$
MM(+<PT%NJ9,6)U02IP$''H%9;,$:SA/<Y4:"-$2*2+=/48\V<BZMRJ,[*X_>
M5.L:AW=A>!%F#5_=Q21-01@GS#@?30:U8L+64M2GZ?OR2'X;3$^>SJUZK2U<
M5B"_#Y#?*C!+ N9,1)&0FR6V*AD!Q:T''1F2.G"*O.[VF>A)JMJD+!1)5ZM^
M6NEJ!;Q- -Z"N?*@13*? .I"EE*I *7RKXP$SQT)+E<NQ*S'&BE<6*74G952
M/VT"NY007Q75+:6KM_LC5MQ^$&[?JC@K#7?2L0 Z.5Q@RG'02#M0C!B'D"&:
MAFY?]I+UVB0X%,E3JZQ:>6I%NO4BW8*A1FR"C81!NO=Q"LF%2-&X\B \(L0;
M+Z*?;2 )UD3+ERJM;EA:+;WDE_O\O&89:NIJY5XJ=_T6HM>4K0>B^*W*M Y'
M&Q7F@ 2RN84L!D-RH5J:L-THZZG/U:\8ZW&%BQ,:=JKV5>MDUZ:0<5>X;D7&
MAR/C@M\J+(6V)B1"JU7><G)@A2. B*"6:N$D,0D9">HQ65Y3PUVH^]2H/ELJ
M^ST<#>&:^XZJ5-LZNOL5 :.6+;\GQM^J_<IB] G'"2B4<PLX-: ,,<"],CY2
MB9/7[O8)[A%4Y=HJUU:Y]I'DVHIV]T>[)<4V<F64P0GM*$VQOG=@HD-@$0HV
M$5DM><B,MD=)+190$F=M6VV]1EO7UMS7IEO7+ND0M:_CJHC]YZVT5T*Y="9
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
MSN9CPXY;!\P&#]8I!\0Y[J.W2CMZE1C0GO).19+9JL56,EL1L#$$7+!9*VW
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
M_[>_L/K+,)F.!VX:?'YB;^AO_V'IE=6+K.!%#I_M+=-P@I@.BF*0S@A@:26
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
MG@[AQ4;]:L_F'H6W&6O[3":RP$QNT_]:=R1<WQG$6HE <P:Q%R9WZM<7#X^
M-X#DU(,,;P'B?%H=#^.XY;.WA@=F3/&C8QC TT[L@BP?#[Z">.>Q^6H'G?XQ
M-.OT"'Z!\;AI#MA!%KTLZU.TF7;Z^.GGD^F_AM^9,O"$C$59  <V#U&6C&_P
MH"R_,+*YPB:"^P,H' .7&IQCU+B3;;4/LQ=:MS>(M=R<#R3<K ?H4@=>)BTY
M!T*;%6('&C5I ? C($:Y!;5@0/L.0;/44N=L[\MPJ4$.9!<0(_<[-&LXK/P@
MALZHZL+GR2A?^CV?#0.2)0!DZ*I0C/HCZ SH_7_<@15;$5(0.E+O,<>)&*.#
M9Q1HL@X,B[2[4;-BQC"ZB1YOMO^\RH0O+PF\NG3PU;X%2KS9^P_@$4RH.O[V
M^MM1[ WC.T"NP3"O/ISP8OPT>7$W_O>[T\\?PY&C7&[O?#K;_KAY]FG'DZV/
MF[S]YM/9IX^OZ38\O[VQQ^!WL9TY\YO,<=?A\X=O6SN?"#!AW%[?E<P1J4Q$
M5F&-N&<2Z>0U$CP"Z=7*4,%7UJ[74*]EYP'EX$[+27\L(>O=;O\$]$[^_JJ6
M^[]@"KP;B_YI$8ZQ<! P@ARV)A@ED0DA(4ZD0=9JC+2744G&DO%T94V+%L#8
M-0EIU8P@ULRS"[PBZYVL2$;[@.4(^"_@^Q%@33]4H.8 H?Y]W(L5U:TJCW_K
MS@(F!4BLH(XEA;FE7E//A'42@WR12,)$P @FWP>:.4E8P:#;B]GVV]W@=728
M1!2II8A;RY%1."!0;]$Y0(I P\H:V(XWRME#"TI!H@<6$;;U=E>XZ 2G$5%B
M 8E"2L@9D_(:D2BCB$1$=F<D&G:^_12'@!W>7K)HH%@3:*8&K1E C3H2I)*>
M\@#D+\0L6<1,) L^2(9_!$%  'T6KQ-@<( C!8/F)V!;K+VQQ4'(SMIGGF\=
M?-A55B0I LUKCP"$A$S(XA 1 Y:B0@+Y4_QN)?J(#<YPH0E-7!MB!(B'P2H8
MIXE3<B(,O A#\X1!8^:]4Q0E3QBP8BN  @F,4H0!4MICH]*3%8:B=6XM!Y9:
M0Y)CR/"$$:=&HSQ@B ,M2=A8+52\DQPT24,4.;BU'"3+."$DH&"]1US* /:R
MU2A13Z--2G%C5];:_6O4XQX_7/'1 %?YL5?F)-:>Z8F;YR8K*_N"KU"=X2S7
M83AS'6)6J^K5-?_0S,.S-ZW3\]WC,/;=K6Q//)J^?QBKW^)8H?R^4DT"%#DJ
MV>]V0NVK?C^"/^,01S]5VT>38.5P=8F];_\UK&?_SY+K;AE;.!KTW<1+CVS(
M70)'CL8:?7SV\-RO?_E1>6!\/GG4SR&%(]N!.PYK?_CU2,1H'QJ0&]3KCV:C
M"YWQF(Z]K+>-$C 0J?\73[-[__CP:.RL/QZ.I6<< IA$">+P7+)F7[,."PR'
M8ZFI'<(3(I_?)+>FV_D2NYW]/G!W>'/K]SOQ:WXO'P?9=0^G?XT]Z$4877A0
MOQ?/W=;3'AY.PQ&W&JMZN@$R^N-N+=?CC@R=8>W K@;UN]27P_CT)L&"NJUU
MC\##!IWAEVES)V[_\_X<P'>;5PJ -0(G3,0B/V(\<9=RNER+#?U\*+)G>SP
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
M]+MBU&CFM=VK_FVA7\#V(6,\;$TX4S:.3BL;^D>9&P%#RRP)F'3U?@2(:0?
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
ME1HLC3VU2<G@C?4&M_L]Y!]LS^1[JN3R_/+\Y_;\$LPJ]7<:PNF]T"91$TW
M@5,NC4G68TJM)!),8%IB6<WF]EL[FYG7C^-9Z[O)!"X4#8A&+Q G>45+_@KC
M2I3G*@JA@=T;WF*LE. I/HV"?X^.?R6HM1A0/+T Q<"()DP[I+UWB LBD+7&
MH.1%2 "/*7B\LD9;C#_$=BH%$@LD-CNH=7],+$&MQP>^]I0-<@XT,"6*")7
M!AE+R%%L$8DRJ! \,X$!&RQAK8)WRX9WS:: ):PU+[";LCQ'9= 4,Y2<U(C'
M@)$67"+#0G)*$BP%SJ:O;$G%"\]K4B+^\I7A*;N>/@1R"^%("H8X*1S/-=0D
MS'&)(Y%>!TM\<5XV'<&W9IV70F&EL$_($\\15Q' VV"*N&,)0%P8H45&<-JB
M["&2\9=T*=5C1[\*_BT/_A7GY6) <4IKJ00F&[Q&FE./>+ TIVH91+%*>;FP
M-YIDYZ4@!1(+)"XG)-[%>7E_3"S.R\<'OAGGI<24!Y4<LHH[ #[FD.&.(R(Y
ME\0ZJ7(HF['KMGS9&K4@WA-'O&:3P.*^G!?<37F>"(E2%@@RB0C$O<J;R @%
MP =6+]-&@W$\SMSAI!0>;)3[<OE2+]>'PSA"^?0(4G0QOTL.YD(0/%#)(IAW
M)H0$_VKML:/$"0[('E.I)MY\)'\[Z\8,3!@LC4-8>H(X$189(?*B>J=%L'GS
M:[ZRQG%+DX>H);ZD<:@2?R_P5UR5#0"^F3Q+$K#Q5"%I/0;@2PDY;Q,*UC)O
M7.*!$  ^7:+O!?66$_7NXJA\;-@KCLI?@;T91Z4!S*,^,.0)3XCCY) SEB*!
M78H8.RF87UF[;K.7+,N"=T\<[YIMY!8WY;S ;LKQF )>9Y-"V!(P;E/TR)+$
M4<0^:16MP#$;MZ1%S4-4.UY2V"M)EK?R4N[%GC\M&98+1&TFO94PTP.QGF.M
MK!,F>LM5@!^Q#\4UV73T_C!U31Z\9>WU76Z=4TIS9#P&! \\(A>81 2H*K;1
M$:<ET%7:PNPAED,N:9RI[%U2]BXI6J%X;)NH#TXOZ8-('=5">B0(TXA3Y9 U
MQ" M=="422R%6EEC9=O;H@N*+G@FNN N?NS'5@;%C_TKRJ!]V3@ (R %P7RN
M^Z\0]Y$@HT,NFN(H-LX0&-:5-7*]-&S)N2UZH.B!9=,#S?84%?_^O)3 98M
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
MEB.I8!AR*9"G(DI+N1>38'LIY]PD<+\_P6XTN(-1\NC@_MSW;WY@=+]E%+(
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
M1')<(2<X1YP$@XSW&!''I.+86(?5A$E 5F/8R#P006)DXL'!0/,8G68,<,?
MD%- (@;?CP#P1S#JXR$8-^OG8P[0?WTES,OYE54QE?F?O6W]@47FHS^(X;@;
MM].%\+P^'@[AMW9>XR]8?,[V5(HJ! 5" RR N-(!64PDRM6 B>1!DL2OBD-M
MD8DO1J8Y\<VR->J,QC$T!JDQ/HB@''6[@Q/@I<9OG3Y\,CB&=X71OUY=1_#K
M71;0@.F?4]X3DT&HR.-B%";,"+WLVJ-1?'7^R^_GEE&G7[6ZNFE1<LN33A@?
M0'=AL/!$<9T&ST]?,+V^-KEV12F87)1PE9#O7__AS3^^*-<(U7>\&:_]H$UX
M3;"[WOO3)K.;WGS;PPJ+1?Q!SY_^6I;5GS;8P^J)PP=(UVV6IN7]>=R/#:I7
M&YDC[N*:+[-ZYUE]N .2F]''GHO#!B-Y9HDIM=9O.X0?[$FC9T$0X'G7TA$_
MOH>L^,#N.%C%R_5=+]>%$0"RWSP7_58<;Z</$;KYM4;^K3N:!%/_UA^]W<]-
MOKOIQ?;G'0KW=%OO_NPTW_W3 S, ;[?]66Y?L[?#K_FWWNU".P^^0-O$[N$N
MF!&?,/3C9/?S#F^>O1>Y?;OM)KS[(%V<7\HI503,CDR$(!(=F!/4>V199(A9
MQD-42DI1!=*M*B:?CF_K27FORL[*K_/&P_'M,^2->B21P9YA[#'Q-G IM=:)
MV> #53DT:I)$AAA"&2F\41O>F.6QQ@X[391"0@N!N)(XGWRU*!@C.4E*5GY"
MJE:I%B^'-^J46N9!;- G;CQ]'@R_H$X?'0T'/HX>JIK+3T=Q6=G"7IR!D.=W
MJ__W9'8+TM\9Z3MS%@+AEDK.<_6M7$>>@85@7.2 ^81%+%BR-.9P+T*6L/E]
M+TOKN5@$C^#B?"; ^.(TX *,]P6,,Q4X.FXE$09IXB3B/N;\B5H@S0V&N0U1
M4;&R+E8%9L\8&)^ZROO\=@C>=OJ=T4$,C?W!X.$J%CY>M=D7I]6>3^B[/)\%
MO.\,WO-E"66R+C')45+"9[\W12;'>#JII!>8<IVU6JI7":Z?W_NY*;(/Z=I^
M^GCWXI35@G?WA7<S9=6F:&"R-!(I*,0#%\@2[E#"##O&9*+ 5-E?R]42M-47
M6E+[$2WX93N%;^)I+X>I?LEJNY^Q+0KXSPD).*@PSRV8I_5Z3M-.7'#IM44J
M688XIQPY3 7BGCGOF+6*L)5U05>-J+N?Y#Y77%W@["FXGU\:>3V-:);:+*5B
M317RNE?RFIE-5'N5 HLHT>PF,CH@$UG^P:F3G 7KR<JZQ*M4UGWW\_'(:_DF
MV(_/ O_TY.^T2W,#>W@\&G?2:3V/R[4/8N/UH ?M.FT,H\]3&1I'P\'7S@C$
M<)0QHQ&_Y9V_ANV'QL#!W,=Q;'3FCMD-4N._;@%@5H04A([4>\QQ(@96AF<T
MZ: #PR)-#WDRAM&OI?UY4[5[HQ^VIZV>G0@]L,/].9<0?IK8=N?3H,WVAMAN
M?_K6;.^<;;=W1/-DCSNC:&  5%(2Q)6-"-C$(6\LHSH9(W!:65>KBNA5D,1K
M@%6)QVW$X$YG?8L8/)P8^)/6R5Y0 92'(%!B3 )I605B(!.BB7$MO'%6V95U
MO:HT6RP&&3#R4=MQ3@*)>C#C!Y5HC#K?IG\= 50-PJ@1^QEK+AW66P4,&AU%
M>-37V#U=;9P<=/P!?!:./7PU/];;X? T'^#]FE-QG9_KG4>C\2!_U!DV^G$,
MMP(&GU7G<ZL;UAH9\/QDWA>V==*Z18UKG,1A; 1X*[RB.X"_,E >0FOAFR,0
MH H)IV YWR(+_^6.'7?'^1LAYG#BP=".<S_VNP-GNPV WOZ@-SD/'SKC"?8.
M![VJ?:^W_]G:1,0T *9#A&^M7>:=A0DJ+I2%P:AZWJMA[-H\L+,3QO_W]RD9
M\.E)YD6WV;QJCL?Q]RG!X_G[5[Y'>M,#ATOEO$5G$1=0'A%71F_NYRUR=^B+
MW!T'PYEBM@^P"4+W!=F<2^Z5[9[8T]'*OR^?*>_TSYO$Z9K*8U_7(;UI/I#7
MV^]:;_X'!/7#W]L?-MI;VZW&352C:9?F#MDOT [KT<.<\>1CH[T-?6Q]W/YK
M:W.C_6:S\7:KM=%ZO;7Q5^-C&SYHOFFU/S9^^]3:^+2Y!=?_U5@D:HO3"Y@Z
M][PA7TWTY8?.^/(7@&>,VX#"%3S^%>THCNJ2M&/[]3D_[YQL?_[0VVUG?GZ?
MLTD=;&_NB-:[MU^VW^T>M-J>;F^^ISOTG\XU?C[<$+M@4F9^WMW,V:3>\-;A
M%[SS^3W?[;TAK;,=WMJ$:Y__3,W#-Z>@FC$J@@5S$;'D#.AG-&?\)1H)$0/F
ME,:4XM6L+P%+%W.%WL =Y\9I3QU.V G)9'+B6IJ/R4#?(>'+SU]TN6'*>6RY
M5H1JPXD%$6>!2)\\5UH'Q;\+?^=F5*V6S,^MJO]WU.A68]NPH#T<#4$]'<)[
M)A]6IM91-KGS=3\<@.80.C"=.5]-XV0P[ 9@A@C:AK<3G>#D("LAXSFK+2L,
MQWX,*@?\;S!9./#-M49CH]N=*DBC.-\(W[6C42=UX/7VXA90129?@1M?0XML
MIW]^3\]6;ZD^&AQ-V@$J$$Q-S"8AZ%!Q")QFQY.&57<U['B^E3 *6?>&SHW\
M,.9'P&O:55\JK:H_^/F3X8G5=SM]WSW.VEF5PB5.]*GJ6UDHIQKAI!'YPH66
M-^W-X'@\&H,>E7ML*Y4M:WD3=#M7]:Z/P7G_JS\/!EUX>R^;R;&79PJ:!/^
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
M-O?9SN>MD];A/[WF9K>W0S]\:?9V2&L35)/Y0SY))^*BPDA3ZA&G7".#*46
M^8HQ!P9X3O-&.5OE?!G5#WYEB=0%,TH*A5\9M\G/MX,AO*[?B-\FRN4D[GNJ
M:)8,"T\GP\)OR]V[R4<KX+<[<,A4XEY7&^7^M#V$KG<KX_J=[?0OQ=(4EKD!
MR\PG@[..),-SK5[C.>*16F1R+=? 6)(A<(NCS$E[,+Z>J/I?)='"H]#+,[>[
M+FT<O5B;JZ2 N$]UM"1]>.##T,7>NPL37ZHY)+.U)P126@(3JYP^+RB!1$K2
MNA!5L";;>W25,UD[>Z_D<;AU'H?:'E-I5U$=LX/0L.3SM_(F@CL>P6^C''7Z
M-79'<Q'[:3CH3>*DM__9VD3$-*!?(?8ZOC&&:=V/PQ@:%F[XVHDGF>:[@\Q/
MG:_YX^I<R>HT&CL_[7Q;8K4*\S@:C&,_!];.A__?(=CUC^J@S/%1%='=J:*G
MH2_Y:9?/U@S.H\*KP-Y)-'85M0OORS#;2-"(Z1Y*#IG-!\N[>53@^_U)H/"E
MC99)K-PXYR&$[D3X_FS?Y=J!ANJ)P^@', %GT(9%$7SY<3>*NUEKO 6 &)S'
M*%_NY*@3JEGI7!N.65Q\S_KA !K3'_0FNY*ABGVI)BN 3 ]/J\: 6'^I3M;/
MK@_R"3OH8.KT0;G+DP?MK/@DJWJ_ 1@<7,0^YT<<#0>'T8]C^-?J_+;57),'
M.9HD>QOV3U>O[6P->N=Q.?E[US>Z^M"\<SF;;[$]ZHQAB9Y5]N3:3<+D;Q@%
MPR^B8'ZZ;[C^WV[X[_7O;K'5:K/Q1Z$0>DFA$%O],4Q^!T"X.I,UJE](1.LB
MO&]?M-[]^67G; /O]/[L[K3?G[7>O1&MPT\G.X=?"&@6N-7^L[?3_N/+U4WM
M[<TO<,^'P^;F!]!6_CEH;3;Q3HX);O_1V6Y_ LWB/6GV=@^:[_*F]GX^D<6X
MUH$JC3AU"G$G C+4$22=B%(J9SAE5Z,@9$J:429B\('+F)PUPA$FM!"$YQ#
M*]O@L\%O3$;_#N$0/W_GY38Z3VS.4&"YU)Q(;95U/"2G-)7>)+;$\(FW'2"
M^%?FK:MBV,YJP0N60-+:WU-8,\8518+Q@#CVH,4:3)'&1#,C8,ZENV%@16U/
M&FWTLBYP5C'GQ5J8GHVM:'4TCN$BX5453Y&IZ*81%5>&8)GA$T*2NX5/"+Q&
M;QR+<+N+;(V3!PO,X \2F/$TFTQO.D5/*GGL@V0TG$8Z_4J3']VZ?3<<C$:5
MXGE^WKWZHSKT_D3*<)19_NDL;WA_W#ONYA.DU?1.N:O2Q<HL/Y=9;L7Q359R
MC6(=Y.1T1SWWH\">' \[[K@R6/IQ?#(8?KD6VO#P@W83U^KSW^BYW<;PC0;K
MJ>[C1,T\IR9%L(.YBM'1&!BWTG*+,:?\'O9Q?F#>5@I#;?9W[FC?GN_OG&Q_
M?G.VO;G[9??PRUD+[-M=>$YS<X<VWS5/F^TMMMO>H3N?F_SZ_LZ&V&DW>:OW
MH;?=;F)X=P_LY)/6X<[)3MYG.@S=UF'>3SK(D1;?+O9WF,0Z<<D0S!K/2=,<
M<M%:E#@FWLMH$LL9MO0JEM=/6SYV88M;+*NZ@-#B(7OL@+3"&H4U7A1KS!D@
M\[9'X9';\<C9+"X<>Q64#,B8'!?.&45&&)ZS9B5.L)+$XL(CA4<*C]1:O%\J
MC^1TD,&.#FY!(:VYM)N%+FY$%V163D_JE+RRR%:YFJ,RR,'DH:B4"< > C[/
M(*<IH;\7OGCN0>"U]KOE_#_=.*[R&ON#/GQWO_.#,T6_>*;G;@?:[N-,3RW@
M/-'$E \^!>:X\=YYAJF1RJED<$RA.)-JANJ=.6>25LQJ+A-R6?_GR8(1P(Q#
M4C,:1&+!4;>R3LFJ(:IVL<)/!K=K<-ZD@-TS +OB [D7^)OY0%SB%&N7B\I%
M@\ 8P<@&*A'&.6VXMDE9L;).R"IFS^MH?(&_ G]/#OZ*_7YKJ)O9[\Z'*%EB
M",/<(ZZY1CI)#7@'"J"UUD2=2RSB5:V74.OWN4)=B8RYH85^/((.QV%CDC5W
MT!\==(X>S$)_O*P;M4!M2XS@)#)K0N11&,>X)EY(9G1('JMBH=<,MT_G+'0B
M)8V:4\1L$GF;+@=^6%!1F:941**BI!5N"W6]]N)CNUV?#&[78">N@-TS +MB
MH=\+_,TL=.\)X=3DRC34(>XU:*PI2B2#E,E(RGBVT.6J,LLPT OZ%?0KZ%<,
M]/M#NKD-=J^2M,D@SWRN72AR?:9<RM#EC"[,IQ#-RCI;59H5I*N3??X<=]"W
M^NAH./!5+I*RA?[0J$U\%#)'0A%N.*?)4":39=(0H:A/LACH]<+MUNLY UW*
M$)P3&)$H ;=94,@&H5&4G#I-,">)Y)JS;$'QJ^)7+5M(!>ON@'5WB/XLIOF]
M -_,-.=8.JU41-@+AK@,&%E!+))@9S"-A00S9)D1H07Z"O2] .@KQOG2L&YF
MG(?@63#8(6F50MQRCES,)6X%-E+F.LJR*'EU-,Z?X^9Y:]!'.4]E',>&W1_&
M*JMEV3Q_&-"6@-')<QI9L%P(ZYS3D0=+A<&$&?Q]T"X&^,-A\WQ"!&JY5\$3
M)#S.!UF)0-;F:'9+I;#1N<#,RKHB]3O%^F20N6P0%3@KAO9R 6[NI#Z-W":J
M$?&*(Y@[B9RS H$1@1-,7W 4KZSS!95U"L 5@"L =]\ 5RSI6X/9S))6"?2R
MJ!C")&MKU!GDF&0H&J*5\4SPZ%?6&28%S.ID1S_'3>[VT(:8ZS>4?>T'<GAJ
MST*PQ!.JN.2 OCJPZ GC#OZ+MMC.CX'&\^>_F4], 36B$!.@L3,*Z60M,LY$
MZV7*U1SS <CBU2S[-P7.'A[.BNU\+P WLYVCUTPDHY'Q3B .>(<T"X!W(D1M
M\JX;EJ!N+L-T+OA6\.VEXULQG6^-93/3F6NAN $L<S9'&N8\;$9(BHBQ47-K
M?(@N;W04+*N3Y7S''>AG466[9!<MV46?7XWJXHZX3X:;/^QN8Q X,(*4,0YQ
MK#TR$6C.XV@CIR3:?-I3L56IZG?<\WGD&*W!3EAAC<(:+XHUBM?G7GAD+F*"
M$Q.DI\@I#CP2DD5:88($M='@I!.->F5=R%7&ZI<TI?!(X9'"(X5'RA&/)7#&
MS+L&UD7R+%+$A)>(.\>1==$BJZUVD4;+>=X*5< 9RTB%_1(YXR?NMVGU= --
M?)SMA8=HRMS,,9BY,#C.%=F_2QZ/U] :-:6,V2..V>/YR.^AEK+^F9>\W>G%
M4:,53QH?!CW;7ZIR?$]#]QP*4;^[YZ+R2PG<+C.Y8";ONW!\F<G'FLE'+ [_
M'*./'[PX_%W5@WMU83S<^-VK"^-V\0P/Y<)XN,&ZA0O#,Z*B,\3'D+@7P?D@
MO(LX4.^--544$#&$,E(V4.O@Q&BV-\87!>(W]B1Q#.N$D9-6(^YP0#I@A321
MD:9$+$MLB65]'VQAU06&ZAD167BC\,:+XHVRA7I/3')ZP22>):)9L,@[+!$7
MEJ!<[PDY38Q7@@O"96&2PB2%26HMWB^524J!^*401FMF>B@'L\$C1DH[A3BC
M%AG#.<(R&6&25E(NM43\2V2,&IU@J+7W;;DEXA\O)TLM %U$IH7Q&)1)QT-P
M.KE$I$N<8^O%)"JFN)3JA.MOYEU*3-M("9/(&@V&0.0$&6T-$EIZ[$, X79@
M")!5H^L7&5-/^*EGP&2!NV< =\43<D\ ./.$8)<DY3E^'&,- &@( A%U*/DD
M*/$FZJS8FE6R%$=(P;^"?P7_BA%_CU@W9\0GF;@4/"(I7,ZAK"-R5CND#*46
M.Q$M42OKE*YJ6I2]6IGISS%(9KEUXA\O_TLM<)M8^/^H)!4)<^R<I8D*:1,+
M,6AJ7#'3ZX;<6_-FNB58* D*:J J9U:58*;30)'2S DO!,PA6UDG?)7C92#W
M\E+$U%)-+>FN"MP5,WT) #@STQ7W!#LCD8H.(ZZ91,XKA7)F:<:(\S8'+$C
M/UKPK^!?P;_'Q+]BIM\>Z^;,=.UQT"(D9*('9<]Z@70N#&(Y)5)*1P$*5];U
M*L;+2)3T3+&N;*;?;.B67"W^I;M7F>;92\>Q-IQSK;6403,A9 I.F53,]+HA
M=_/2 0U)89Z(1T8IAT!E9<@8P5 21@0<>.0R9.2F2RDE^DS]JV4SJ:!=J1=?
M#^B;&>A"6V\93HA0HQ&GFB%'C$+,!V9@+F/D9)D!H@7\"OB] / K)OKRT&[.
M1 \*,Y7#A)@Q'/$H)-()1X03E\9;S8DW1=&KH8G^'#?2EULS_J5[5A,6UAM.
MG#0<2V<D4TEYT'*PU3C^ +:+&?Z Z/S^4E [)YPPYI#U-((N*C2R@,G(I #8
M[*4VD2RK:OPS=9^6K:(":,7<7C;$S<QM)Y("1=,C1I1!G%  .VP" BO<!<4,
MYD:LK#-1(*Y 7(&XAX>X8D_?'L[F[&D3N21>)22=TXCG&'6+X4=P G,1%:>&
M IS5,!G)DX&SLN%]LZ%[^,KQ+]SQ&;EV6!),M X<>Z^M(RY:QZVBFDA?+.A'
MP>-/E^+-)9'")E O,>&Y6)M&3D:#0":H<)19Y<.R:L<_4^]FV<DI@%8LZ&5#
MW,R"CHEQ;+A$!"L"$$<),C$(A"4++(K@#"4 <<L()R\(5Q#NI2-<,:!OCV;S
M!K2D% OCD04+.E>X2L@ECQ$AACDI9,!1K*R;^E5$?#)H5J/=Z*=2/WXS^MAS
M<=A@)->0)Z:>)1"F%Z=ONTD%I3H,=5TSE-YX-)\J&0KL&<8>$V\#EU)KG9@-
M/E#%A8M)E1C]NC'ESKQK0T5!HPL$"9+K!S-MD+-<(<]5H%$'&UU.^,16N>*U
M\S;?Y\JK"Y#5<^NM4%.AID)-)>W!8Y#5S$G%(Y5.*HU2]E3Q0 G2W%#D/$TV
M,99B]"OK@JT:7<BJD%4AJT)6A:R*O_&!B&F^'@1,5]!@0$6O*>*"**2ED,A8
M3(F6+."<D(R956[J%[/S0HBI\EC^>VRA\?!OZ'Q=/Y^)UG$/WN77_QL^/&_U
MW-@='H_&G73Z>\\.]SO]:IS$K)OK57'8BS=5S[W+<[[+E(N[>'E<?C*(/YF"
M;J<?T;3^.J$5=+8/8F,$C>XDD)?^."-._E:CTV^XXQ'\-AHUNO%K[(X:PS@Z
M[HY!!!II..@UQG#GZ^U_MC81,0WH5XB]CF^,03SVXS"&AH4;OG;B2?:(=@>9
M_C(>-6P%0ZOP M\]S@(%OYU#U,5%0+K&T6 <^V/H8:/3.[*=83[=TPC'PWQ+
M?O?X8!@CZD$7#QI'T/M!:$1H1&C\>0SMISJ[7BE>:[R%9Z4*$*<MN/8^>)0=
M-^P01N+8'48_;HP'#3NGRJ]..CN =O1/H7'=[N!D!!T<GPS0:!R/&N>I0G*[
MYUH[CJ,\7FN-K3SK\+U!/ZXVOO0')_WL*LX/'48_@-5J7:?;&9]6=TS>YJ<E
MB1M?<SGB/(CYTZK!C<ZHD0\^V3S,T-1\873<._\.2%1GY$&P<BD0;T<'C52U
M-WX[@KY-;IG,Y6PBCT?P[#Z,X%=H]S&,.3SB:##J5&0V_V[H2_KA"]/Q^'@8
MY]_;R1(TJD:YOZ!KJY<[UA^,9X/2G;2J&CL8['P=ICKS8 RS484KDX?,#;T_
M@,47\PV]:$?'E4!.1APF%EK:<*>-DX../_CI8,=O/L8 W0!!2?#XR7<F<M4!
M@;NI;.6._5"^9@^_-MNS/O3S_Q9W-(_:,-Q[1R\C7D;2K,YT^L=5TR]AX+G$
MO)JDMOT:?S_IA/$!@!%@S11W.)U$0:XLOM,ZH*7C<?Q]2D1X_A$KWT/<:2WR
MI2*LN1G $G5E .=^'@QG[+\?D1M&^P79!%UY9;LG]G2T\N]+/>X!FUP9QKJ.
MSL(B[@N&Y_7VN]:;_P$B^?#W]H>-]M9VJW$3BIUV:8YA%R@D]>AA:[O]YF.C
MO0U];'W<_FMK<Z/]9K/Q=JNUT7J]M?%7XV,;/FB^:;4_-G[[U-KXM+D%U__5
M6"0U5];>1'MWGEA.;<X$J3F1VJJ<HCXYI:GT)E=&?@9JRA]V!,!V?#3(# )8
MEQ%K-,H N-KHV3ZLG@D8#BJM(G-<AET/:K#M7!#8E,#_W]'/] % OV[UC._P
M<T;A"[2]AL43-0!N'ET\,/YOYM0I52_ 90#;*\@\ >-)(^#J//&TYW01L T'
M,W:XPB*7FKF0-2I]!=KW4QZ;)"N?Z Z=Q:G1)@V;O7[4. $]L $#!CS>&1W$
ML-HXZ8P/SAFG Q?RGCE,#K1M<#P>=4*L;IT(MPU?.Z/!<+61U=")R@<ZXZ '
M-Q_!^RV,G)M)A6TL4GH:O4&(W8DP9%VL9^=4E&%6=F"81F/ W=YHHO^ CM0'
MT6K8,6BR[KBR(B83-QA=OP7:\;631Q<F<R:&:\_/2*C4BTJ;GVB.E8A<EY(%
M:V$\&$.'80+_ZQ8^$BM""D)'ZCWF.!%C=/",)K"] \,B[6UFW1XSAE'UBZ3Z
MSLZ2K8LV;Z>KWI(WWZ9&RKO!()QTNMT+WPE^FKZ3;OS/A]/=S^'(42ZW-[_
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
M</;:SZK?5=5AYUYQK7?QVS1,J8J*6FLT7E=7QMW32_%6C2JV>#0)-+LHSGX
MV!"K8+K)^.0HKE$U8/"@/+A7OWD\[N1P_NO-@ ].[#!<A'Z-&B>=\4&.T3H>
M5JB3A^3X:*Y Y$(<%)0SG@)6"DSU)+7526*I0TS2<HWU0AR\6@LR' ^#/;V*
MCTW[K=,[[DVJ'L#0-B=-.]U.;R>=>3WMRVS)CL@+ \;6Y@[?DT'K&%- @<:(
M0),FR J/$2;&I\B%D\2LK'-Q%<0:,.B792GFH+6*::IXS2ZHSL?38+>?BW+#
M@AQ.XBI!%1\"9DP6P_0V-+^*AM%'F#-03*;QCO:T^F,JQ?LPXY,+P'NC+(O]
M:2Q?F,WU-/X.EGJ88(#+RSCETRWNM.K,E96>;&<XM]P/+HJG52^:U0Z%!U7Q
MG'D%A4F+1M=75GY[C@R=H-"D&N^HNMBIBF!><$>UPU?==!XP6NWL#:,=Y^MK
MC65$_?G]_K=7V\?C' 6;E=>WD^7_^GSUURG6[S'4B[/MC3V,8Z"&2\2"-8C'
M9)$CVB+,0Q"@\^N80]7O6I?P*7!R5<2\6BI5C%^6T\%,9A9PQK.. >1BC=(?
MU /\A1A LL8P?Z@2AG>]]\=-AEO9$VORTQMELZ:YO)_8T#K4+31/M&[A$MTV
M/W3V/\#N3!&6!Q>6A]LG^FEL\S/>SGM:R_K<-KW!!"U?VF^1V^$&-3#K.0&M
MP>0\5^7$_B<;?<NN]7N[2J*WS9Q4I.8AI.;3Q\U*8-[\[W'GJ^W&*R6%ZTN>
MM16,)\*L!2Z*5-P:#A:J1N3>@S27&]Q4??559PSO\0^FQLZ<N+#P&IN77*C3
M_<_Y[;=7CV88_8H-M93<LK=[_R_7%*[Y@JU!"\XEM::YB._M_??%5Z4XP@VD
MZO\;#",TX?.@_U!G UY4B8(OPY,KL8@L$.8,=Y)[SEG2.E$E?#",2^D5B_<0
MBSACO2JWYKG&N='+6X)U"4F\Z][;-,OFGU]V#__IP/O8SN'&MYW##[W6)KSG
M\.UABW[H--O0YL]OOVQO[G:N9=GLP7<__PE]"YWFYMM.Z]T.;M*WO>;G)MM]
MM_6M]?D]M/D];_7^S"4S9R&)1CB>K-(H)BMREDV"+),864=)<E$;6U6P87I5
M&KP*\E.[5)OUA)S%HW(C'KE7+*G+>-2@!8M5BX<GRA>3S^)7UFW=.>]Z_'WA
MO*?%>6>S:I^6&2<,033:B#C7%AG/+7+1,L(-98XIX#PB5B4N]7<>@>]J5T/F
MI:OW-E#K(X[>&HX%TR$QPIA6*A+K!;V'U#T%ZNX1ZLCLQ)$*3BNF0;,/H-Y+
M4/2MU0I9'30/5!(N#$"=)*M&D%51U/LG#7=%EZV%D-8=X!?HL@7@GQ3 LPN
M#X%RS#U#SF==-C""3 "%-D;I@S/*:4RS_\:L2JT+N)?</ \X;F^.AX.2?.<>
M #KFFNR7ZU@)C1D@*U%@H1)-# 9TYL9;8KR4!A=G0XT ^M*9?V<"%M(ZQ#7+
M "TI<@(;1#6#3Y-0GJ:5=;$LW_HS3<KS,'OZ3P1W:]""GVS;%_#_%>V\@/_3
M O^9ISE%XKCD!KFH,OA'B;26"1&8NV09\9(R '^Y2I92P[" ?RE67B.DNZ[F
MNA@HE=A$(AR/4FK"F0&X2XZ'Y,A]Y(@O2'>/2#=S-#M&O55"HVA-0#!W'CD
M-\0 ^5A.96&)S*47BYI;U-RBYA;P7Z#F%O!_6N _<T+3X+!+(B(5+<^.#H<T
MM@&!AFMY4%(D#^!/\2KE2TAL^%S!OX1ZWV#<FO$;-+S?^#N.'LP7_:*B00Z/
M3J_@=/9%.*,%B4QQK:U5D6@OG+!&,1N*.Z)6.#U?U,-A&I33#&D:LCLB.R8H
MQX@9@BU37O"4@[TU7U4E$J0$>A<M_<6C_W4MO:#_TT+_F3/::LPL"Q0YF#]
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
MHR+LYU0U8\P';,^,-3<X-U?<F,NVX$Q1Z"43FFIQ_*4X?J*-_3V"P00@S*-
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
MR-TEFM*58KLSED1";S"('^& @5^:8\:YL;;],%LI8&] 7EU0@<?$31*,127
M!_,F&G<.?X36[MBLA+2QOB7V\@8:G")&T4@)5G-*R!CFD77). I?:D*>Z([]
M/1Z _O]G[UV[V\:5=.&_PI73/=.]EN!-@."M,V_6<L?I'/=IRYW8V3W)%R\0
M "TFDNA-2G'D7_]6 21%R?(UOD@*>V8[ML0++H6GGBH4JMHLJX)$F.2:<#GG
MV7!H[M6(@],S> 3\=3;41IBJM[3]!_6=\([CEF$W$FWCKEY ];LU?%3=5P+%
M<]+I9 I+RZZ;$H3M#-8.KBS3 .%\%46F)S-\?RK,FF@QPYXCH*>G3@[/-1T;
MGY9V4670%FE8@<J&4].#M,A'CH8.Y3.M'6W\=XXXAR4']YC!@H9E4O=LDQWQ
M561#D61#N,YFRI&B'$#7X$[0&WH\*9=ZGBVNUQR&XDM[S1J[.)LLSA#"1SX]
M'3@Y]!SN*+[HB=/<T<-?RZD83_!Y[Z=#[5 W\0EU)H4PXW0&>@LNRPL<3>C
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
M,]+_<#7]=]:@:5=8)BE8#F"(#@S&3@:%UF0$=PT,VRNS;]5?,-A9KDI'CQ4
M]9_3L798U'-P^?3N00R_?Q^Q6Z&/01"/=_W#XP_?#HZAE7ORXO#=291&R LU
M"4/,Z2H8$,?(#8@/)IY'$PT&GWAZ9UPW^T\S^S)4H)Y=3F0<)F ZPF]Q*A,B
M@Y F7DR5UFK5WL8MT!K/]QO0*6$*&WP!"HA3ON,<B#%<BP&TQN.A]$07(X O
M=(>(B:-%,<[&I_"4(A\9)\A0GX+M@7,XF366BG.>#8=. EP2<"O-T!$RG 'A
MS,9?=5D5>#DK\J^9TLXPAWEW4L!C>+!I':#S^61@\6W%6P4\.L=@WR6WBWGG
M.)]<\]Z=;79P%;#>"E03:D41<?1J9:4981Q#%("Y+0 73<ZU'MN/M9I:-$DK
M[];9%,S)$BP&47G%9*LR%_Q13LR[3\?0<F7N@J$7L/1A7@L-EN@$W]L\Q33
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
M^B+%XI221%QQPF-7\Y#&8: ]RT ]?KD@U-8":,= UV;ZMHF!?F=.KPY UP5
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
M,1W+@-#('D+D)$EH1(!_RSAP00A,JGG>"^,K]J,' @B!UN.YKZ_RHMS.HV=
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
MR]ZY51X_T^"XYX<4&PRM>_.MY54L=7UAK]Y9;(M$K=F-2 0W2H19F6=%!@L
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
MNB@]4 BL<#7(SJR0HLCK;UE9%Z2KJE*/557)_BNF5\[&X_RKR2OGC/5Y\RR
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
MD5$"]9@.0'TB[O3QS.'3Q;Y?(TVVC "---FAP]PB:?)V"7C H^KJ5**R6=:
MF%F969F);VYZ-4:AFOBFB6^69.<@OGEAQRX[J;*A/[F:V=?&<3!RK@1R[I4>
MYJY$-XU0V6XZ-$)EAPYSBPR2 ?<</V!_.F/.TCBG/Y6 6EP+>2Y ;!DALV5T
M:83,#AWF%@F9MTMP^G)"GH4#: L;BTK>BE;*KK.#XJZS#R-_<B_^,XNNW5_^
M'U!+ P04    " !E@?U0S8]HR&03  !PT@  $0   &-G;G@M,C R,# V,C@N
M>'-D[5U;<]LXLGZ?7X&CE\U61;$HTM<:9TMQ8A]7.;'+=B:[3U,0"4DXH0 -
M0-K2_OH#@'>1A$!)CK1+5<U4+!+=:/37Z 8:%_[^C_G4!R^(<4S)9<?ZT.L
M1%SJ83*^['Q_ONZ>=?[Q\;???O^?;O>?GQ[OP&?JAE-$ G#%$ R0!UYQ, $_
M/,1_@A&C4_"#LI_X!7:['Q71%9TM&!Y/ M#O]7O+;]E%K^_T3L].[*X%X4G7
M\3R[.[3[;A=ZSKF+SGJC8]M[/[X86L.1"X][W>/SD2AVCH;=\Y.SXRYR[6/8
M/SMQ>B-',9WS"^Y.T!0"T3#"+^;\LC,)@MG%T='KZ^N'5_L#9>.C?J]G'?WS
MZ]V3*MJ)R_J8_"R4G@^9GY2WC^3K(>0H*>Z.R;Q0W*5C@N;BG^F1;&SOI'^6
ME)6<L(8W)CR Q$UY$TI(.*TF\ )V%"QFZ$@4ZHI2B&$WI5M-E!# (&!X& ;H
MFK+I9S2"H1]<=D+R5PA]/,+($Y;@(XEUH4#N=0#9& 7?X!3Q&7312EU\_ T
M"1">SB@+ "D1CB ?*FDY"Q19MV=U;:L#(DCOJ L#9:=Q>=6Z$M$1\@,N?W4S
M%A_FW.L<F0L0\NX8PEES(?*$D2#QD^;"Y.S5.C\_/YI+ ZP5HVQ3JGQ7_MFU
M^LVJK3-.\[K%KVY"MPT9LL[73(:$;D,9JON<B2AYRF\1H93E7,IBG6PFRWIR
MK"N$8L61^V%,7XY<&I* +59V$*XC3'XT[QM%EB%C(FBM(TR>,OVUH3@>PH*?
M==Y(DH1(_M'-J(OU0T)HH+C()_&SV0R3$8T>B$?2X"\2JW]$HR0 E8);A6M1
M_UQ YC+JK_!#1S-&9X@%&/%\8%0,)@R-+CLR/'83W_^G"_T/0I*D2*F"8M>5
MKX\$B1OZJKEW67L2#M*6+SM<0.*C2$/[W'P/C9HV7Y!@@O\K6N_#8=/6"Q+D
M_\<W?,90TX8+$B[&7.N8O:1_%N\!]BX[5U2,ZA_@6,@GGW]_O*T;GZEJL^()
MSX1K9H<?>V+8+/X#W6P:T 6*$DC2WX^6"998A1QY]^2C^GNYG3%Q7$1#N.06
MC.F*_:F2+'Z8Z%&K7<*ICSTY!7H2C5#C9$Y']\(ZE&C<5.TK^6CPL!0>?0%"
M2JL R7AF+SB@(Y"Q/6 UNJ)3T; )(AR_H%LQZ9T:]Q5SAGKT9+<W1Z_ 'T05
M''"L4OL#% .Y8(("+"3?.JA%[GJ$[5[/V0QA\*Y0W]];BO@GZ,NYY-,$H6 -
MYUHDUV/F]'K'.LQB7B!B=L CX!OV-PTO/5+'8IAECM2A)Y6]&^23:Y^^;CA<
MR=CH\3KI]4X;>$/!%2BV;4>*CIXFPG0GU/<0XU_^"G&PV "Q2G9ZY$Y[O3,C
MY"1P>>Y_ Q'_ X1EG6]KF+*:MQ[<LU[O?"-P6^Q9G\+I%+*%@ "/"1Z)YI-@
MX*K$)B;C!Z%#%R-#]VK(2P-FW^I95C1#Q]SU*0\9DLA&C!5\&6N0\08)\P-R
M2]I^"P2-D.SWQ'\;("GZ9/Q7F[KC-_3ZP"@1RG"C@809;F4R?2>S+95V*4 C
M>( BDQ;I_1IB]@?T0_050:F/!KJO)M7KW[%4XJ2@?\D'*$8@SZGM(#S#H6_J
MOG0,=(#8O6.[[*MJ  'O(HYM<DN5BAUP+F:ED'AW& ZQC^6R0OQ>C+M2$DK@
M(Y)KD\*[?X(<\\\H@-C?!-)-:];9@M,[<<QMH0LB68 0!N2D24IY  9Y8DH
M!*E00$D%WL5RM=ZB-K<,,X1/G7+XJ^WM+01'9B[D_W)V] )]J0=AW[?D!?&@
M061<S48?)<\LE7PNP"3YO8]2*SFV[U7_RW$^@)7IHDD$-66FCZ;G=KE_&0+7
MQNBZ4NF-_*(Q-ZV/%%VO/$0UQO#@,\MJEXMCE&0)YU^(^%I5Z\W#<M;VS2H]
MEPB4),H/9K6F6:4IF\&+T(WTG2/*GD3)-[.F)C7JC4@,Q8[7-Z)<+BF5I"M$
MZ4I9#H:S"L8;1CG_3AB"/OXW\N[$+R2+I.-J+G3YRXQJ6]+H#<YVU(+KF@:G
M9 29D""24I7,I@\<".D.%KE.A%SI>=P)\D(?"=?C^_15KHT+[5Z):38.)!8#
M-\ O.%AL.7IN6RR]C3J.6F1>RT8;.,]89N4]$ZF5Y49R*]L&B>0'>ZW"_<MH
MA*2"T%<8A$P"# /$?V$DWD  O0T>.VJY?$T_F8H%$KF $NP0J2OM3+:?!)09
MK]+E";09%.O$*@^P<M3M5'*3?$B93)OYL$[M\JPYQZ.-V8U<\[- F7O8R"6:
M,M.[MS-';1BI1:D8'@OXM=L_?8-,;L!_0>N"5F*@!^K<L7IZH%*&K83F#D%N
MZLKBLMJ T>]9Y0E21-@ZK38)$P4*;83H6W8Y<1:1MS$X1"U?SZW4T&H]2E^F
M+FO4?W F4@W7H1BRHZ^"[32<JD</<"$'Y_=#'X^CTU??B8=8?!B+C".Z-:#;
MM"H]TK9CE1:A4J2CJD%<=_0<Q+6#7/5 U0]2 =*NVD+[N*'4>\6^_XT&IGZQ
M2*(//2+4E_(>"3UXISBT4=M-PM 2C3X0'=OEN6&F[_:%HJ3MC1S9,I'>)9TX
M5FEVF*F\A2[E5DA.QEB86K2-RG0^L42E=RRG5CF9E;&(-W"U6.G-\B&5M'I/
M<V:7)Q4E -KH<I:UV7!674VL=T%B1EV:?E1@<?!%B3[_M#:"0Y ? %D/D!]R
M-D:"16XX;@9%%:$V1-@]JYP03+CDIP/MUGZ30%%/KHT5ML"B- NH0J*-X:)"
MIU<3X2@0QZ3B7>0RUH;+@+76L]ER'=$(RBZ(ZP*8U( =5=@FL#\CAE]4,NJ6
M\("%#?9=5Y/J/:!ME3/M&1^08]1V#)IX01T#O1]T[/*DI1J/-GK"2KTV&CUK
M.>C]VK%CE:8S=="T<-A6J=G[,)"7J<I[F:\I>X7,NZ(D8-"-N\/FV)G6H,?V
MQ+%*PX\:;+L@5R6(ZP1II4#5>K" 1%_9<GWE:TQRUT%<8P*)BZ'_0+D2*MT%
MNKF=;%<.O36=.I:I$R]N.:@I)(9'A;LL4OE (N#[_#FV@^TEOF$T$K-HN7ZS
M1IZE$4>]/9PY5FF:6>]=TBK:G 2HB=,5#V\@)G+3ZC:& 0;L]4B?.WW#X73M
MB_= 5@G>R4K_WDKL']$+(B%Z1!(UQ=0,U HZ[>3'Z5GE30$Q$Y#CTFK5-YGV
MU%)KYSR.99>S<!4PM''"4]9H_$0H"X['#(WE35?#Q0VB8P9GDV9'(-;FKG6"
M3M_IFW2KW--"?6"X &F-!P>HP>6!42]TU>F )\1>L-MP.\X6ZM%;@NWT2WMQ
M&EI"4K<Z;Y#4?K *Q73@>>I?Z-^2$653)>"&%J#EJ4=;]/S2-H=JM+-*0*Z6
M ZJ*Z:IC91L";,I>C_6Q\/)F6)N=.#M '_6S$6)"*_&;M<XU-N:J!_K$Z9=6
M<ZJ!3JI)7[?Z%.%30-V?GZ"@EI<>(,*5/%_F\D_#"_OU+/13FU.KO M6\>LJ
MAB#/$<0L#^A$>F@RY3%AI)_]G-GE%;A52+5Q*J35=",/:<1)[Q7/G7YI+6@U
M: <W6-1U=NVL+'4_4^//=6+>QK5HT3[N.?W2ZM!*M(N7WLK2(*K[$!=KH?J!
MY#=7D3=X00R.Y8ZZ<*ITQK\+ DR^\ !/U8&,['Z0 J[\1FXB0=[VK&?K(NE-
MS7+ZI:4C U-+I.S&8H*<G$ **M>0,E$+UY8LF2<'L< '\RQY$NW+=%[UB'C
ML*NNNA<$WX5PS29M;RV$W@3EYM3&)FCB#G,3P4RZV/:4? >+J\?SRW3FTP5"
M<0I,?<Y@N$PEY]?1]SJE :C)V;^1]X 8IJ(<WZH9OI%D>MN4^Z/6B<0YTTO$
M39*)T9<ANL,2_7N0"1W9;"(VB.0&2O#V&NTCFH7,G<CSFTRFZZ<-S*I,JYW/
M'CM6^0A5Y#DR3B!FU7H<FO?R6A;Z[GCLV.5//=2@TLI^\@SGIIF$J*B^%YQ8
MY4,CBJY%*HT^+ZA:W>P$VS*9-BUS?&J7]P;$7S943-J8@LGI4 9#XF(?QS%=
MCM_B3SOQ:^2)28@O?X0!98LKRF:4B3>"\E'\$U 99B%99!>9Q6\H2ZL07N,%
M\Z;K63N54.\KSQR[E)$M&%07%$668XY(Z&CW'P>QV""5&Z2"2QY "@@""F+A
M_\9S5[(E[]\#RG+U@K05K?3/.7M9U\[,T#]W[(H+PO+NI(7:7\JMJ(&XZ3FS
M2E)M]#SI614'DY83)Q&GMH/0Z,B?AH$VQIY8=GF1J@:0-H;;2L4V<E-:#EJ'
M==)W[-)0LQ:;@^^*-'&5249';P2?>1UZ@&W'-O6&ZA;8M%8Y+CE80GX;A]R[
M[<H;;\GX2NAA;+Y?MH)2'\,<JWP(K< &Q'Q:#D"S;<NU]/KX=6R7DU*58+0Q
M>E5I=;T+_XPXZ9W=B6.;=9O6WP98I>QX(7MCT);XZ"$[=>S2HGL=9,E*^P&P
M2"7)#@-,"F_%#\2VT/G,V.OA/7/LTD)W';SIA@E,ELK$5;82^*=PR-%?H6C
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
M:26Z7P>W.F#(W0F:PH^__3]02P,$%     @ 98']4!$%WJC *0  [L(! !4
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
M:TSN5BV&U%1%]=7P[/6B^WT>H2N^X/JH2+\.(OH;!/8N":MY(DJ6VLG6>N*
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
MQ#FUS@?I:)OS6P^AVHHI[KM?K_;5TP&28^\!H:U@XI7*RD5*@N8<;1M8XI7
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
MZO*)>/?B,C^]!NRM ZD0<'$_2]U2C:YIBB4='G&N8/"4F[S>-0#SF+8=1L/
M_;7:]%C_QD38Y,Z2/RA?AXTUR]C=!7J8G!V-0=N$R@LL =J0LO7(A2),>,O+
M@T@L-#E>]60YNW5E]0EPEGA(BD212_4(G4G(+! =%<OEJHN/^<##7@/[AK)M
MNS!G!W.SNWX.LK1=%U*\:0\G3$*@,GBBLD*;ZX&BS8VR?%&940?)'#KE_16H
M.Z;,VC[ \334JJ'$A@O8'^5BS'QY=N.*QCY+UZ9FAB]:CX(;NMFVH8/]MQV_
MWE@32;38?-S0S<MCI#/TT_F&WYT[$95DM45'3>2XZP"'RO@5=-/3]5VT7^;]
MLEN=OX^YAPPW-S1<1EL ;"*#_6?>0\TUDD>+V;>QHP'[_P^VUT@N3<[#;.SI
M[6K9XU*;IO.CUXONL^]2*53=^7BAG-J"V[:_1H+=:[A-!']=HF;CKZ?S#TOT
M=LI_+S(Z1GX>IWYV62S\JCQ4;?741=5(B0U%UV:.Y8P^;#D,.O@PTD[MMYI#
MVPRGVH-EEP#.^YH(#"&H E525 RC2PPQ'6640!!,*!-YA":;+W>!#']KXK*]
M*T*^S7<ZF43K@\W:$YZ$+:]@8%CE3"992.Z4H\':)JF.;<"-*=TQB"7WGW&H
MK)F*[Y/< O%R,2L!<>=GU[[VQ\5[6*ZZ>:DN?SY/)]0S85A"@,HB5&<B\2Y9
MXA5H3[6P@38FT0YH1Y7J:$2K5LIKP+/+>PNE(*9VT8L09'F 1!-I<B;.1T62
MU3J;"$&[)NGFC6@:F]^K^QH3GE&Y7$4"("F145IBE3$D&1J !2O\W4J_!S'!
M5P#':8;WY<V.MG@_-36<)V?7T_I]$7B9T7'FIR<WIG1 F(R7<M= '9$\X)0.
M5A$:/>,&!--MWH+>"^U([7%]?K728,.D\U<R!QM^6-ZC+B\ U<^";-%9LQ3)
MK@,=&MN]AU.8K_#CY1?GKPWO(<@-K0R7T&/0Z@]]_S3C5]MJ(886"<;[O5S\
MY-6T]T=''1R5;:IP]C,LCCK_Z7C(2V9[]]5"F/L,\U#"?M<MTBJNW]'Z -WI
M- ZJ"%>AU\,I8-NAUU?%BY36__K9+_.\Z,X7\:IB?["'%B+>?DCUQ?G8 WY5
M);MM9RV$O-= Z\O[%63HL-.+WU1X>'+G/EI(=Y=A#17JA^4B_OFC[R&]7)R4
M X8WSQKN(\&'&QPNKAT -Y7-_O[3-LTVEE,+K^K!#@=,R:W:;2ROPT^]#R6D
M[LX6>?VIMY_62]MP^S:XS\:"WGG8397PQSHK NG%*73^J.1]5R=K2/WO^ ?3
M^4_]<EH<C/G157:KOP6]_[D<I8'42F/5 396;UN!MIV0#_[RRA]Z#_VRFT:$
MN/Z#WW%%'^+VM8;4>CI7%EI;#5_A^0E5LS@#N(C&/AS[#L+=ORJ>;US_5QG
MVGG[)Z1WT$T7^+F^H=H;X6S-A4.(MPI!WL.G51>/2^'VKJ1&3O96X?V6*@GY
M$8AMQ#"4T%]ML)50FE#DH_^RG]]__H?#Q[H!P/!J2_B?L&YX2+VINXW4N*_U
M(+"*XRXV9AZGL^F%S2F+4%F/_!+ZUY#*?E+Y9E7>V7FYZ#XM.OP-_N5[_&>Y
M*);+S\_ZGW*&XJY>_F;1776!G#R=]L/R:T^*MZHVGUC<E4ZW7?5_U6U!44ZD
M3N<K]&(OBDBBWSK)B3')+2-.BT1D+ON=62DBHBJUMVU*O,G]V^TA#MU-W]S3
M;46_6-Y5[JT/3T(( J(R1.5<RFCZ0*S1L3R#1:E3S$0F#R>EG;"/Z2!'(U[>
MW7T_M,:K'?S8!OC:%KV8IS?8VNR&Y9HH <J:I F+/!,9K2366TX@<P:!ZQ1H
MD[)=0T"/J6C7B,A91<<'9>7K18<ZFM_ZQ*LI_F$'*#\_F[!2B\+Z<KI1^5('
M/2-RY%-@P'7,#B ]F05]#/R8BGN-B*55=7Y0MN(/SS<%^TEY\4%+"\0FBC,J
M(8-\$)Z$&*4(G()VXJEX>0USQRI?;8_+C8B">RKRL MVR2-MR#Z5EW/Q#WZ$
M.>3I\AUT$:?-!'@T7@5*HN.!2!N!N*0T :^CSD(I%9N<XJP^DAWK@_V/H6P[
M.AR4U6^7Q]"]2/^UZI?K$Y*3\@:X,#(3;14BA91(4)Z2; 5+20M)0Y-ZQON
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
M;#&FEY._!EFJHD2@(7 G:HM#Q[S@E@D/)CIE#*WGQ\W=[3"*QTS6X]&A0;3
MJP\+K..SEXNF<U_UZAR072%B)"G1HEWKGT7+(M>2):OH?\Z;W*AGY1V@'C/S
M>E-6@Z.@+VA>E1?C.;%]2&;NI<A^_I1&%XL&Q9-)_FLX&@TD+=W<DH%@$:!V
M+XPL %B6(W<A1I*1;!+RMA7*QTRU=NK<>*QTM#[2 %HZ&9#)4H/ M"3/*BK+
MM,\0"^1D;;O6O-]0'^G38><!%7Z;KG9?NMZ-[MG[:BF\&+^>XHR&LQ#XSY\^
MX'B&;_ C3F<P&H1@"\TXS@P6PW2 PGQ*AB&/-.U42&ZU4FP_C-T;^6,F[6'5
M?INWKBUOGXQ&D[]@G.KWSTBFP_FR5W:]LOP\D")Q$9QA4,,D=%"<^8B%164$
M>%\[(#2Y%=H']'>V'D#9MXGJ3Z?6D9$VY)B0\9@+&=6@&#C(3'F+W!@+,K1-
M9WZ<M8YZ.7T_J/*/7>MH-IT/%D<,BW#=$J6P/ACR!3/-/ZTR V4<[1LY%2_J
MSM&EE!$]] 9EZ;M5NG[UUF\_&V0KA4_V%7R/!]_7(*["0CK V")MHSL/^H^Z
MN#_38@\-K.IP#_$UU&:MX&NM=HQ##=H0UC%O<F31VN1]TLKF+E7^3T.+&Q(0
M^E?B-E+K67F_D:3.+\Z70*PT$6,VS*5::#+*S$(N-!A(VD1G@9<NQPN=U/?5
MFP]GONXE^TD?@NOQQGL!!#[= )(-8 K>L^+K*8%8E KEB38'J[(4 01VJ7C9
M38,WW_P-:G!GP34LK?LD_?-B.+N47%U>'-:H2:(3EXK\:*XDBRE:)J2211@C
MB5PMK^!6\#Q.PZE/)36\]+T)JWXY1;RJR-,!8,O<V'L1'B?AM1=]=N#(_LHX
MT(KS-5";HP#N$E-9Z1JQ'5D-WV*0E,@T6]#&@ZT]!V#+/?FFQR'+-CKHD227
MO<?>#V$Z>8?I_7@RFIS12OORY;.KZ&Q=:+>LMQ%8^U^K6 A224PDX/2Q*5A6
M(D W-8#;_)+#GVGVK(]) V'V:#TN</WZG\/_Q/&<]L_9BW'ZVQ(1D;?81'NS
M]R4S'9"\&D3%4!MA4:IL5ZMW;%#OVL<_*,7N+\"6Q7SNJ&=DR-!5R".S9.(R
MG9TF2T@59K2N';>EM!I;+.^/HE;=/F9FW\IK$(O5I?)1%XC?:]7UH=\=BHWM
MHIPCU:JS#FC-3(9Y'3C35BH68TZ,I^1<+H4GTZ:2U#=<JZXU?;;1R;%JU64'
MSH-0S(A:AC9FS0('RYQ77#J>3<8F[LNW6ZMN*ZWN4JMN&Y6TK 9^=PU]H3D8
M:P-34+ML<6>9YY+^$$9I(< GU98X#[R[2D^V45\J;!!AO%V]["Y@OW=7Z5WM
M>W6_V$5G1^^NDAV/(#1YH1X#TT)F1JNQ(*<4E-08C?W>7>5$^+6-J@[<$<&7
M*'E2CA574]RD+RS(E%DRH&T.:'+\WA%A#VUNT1%A&U4TL*=>C&N"V-LYS/$R
MG#W!];&XL&@$SXY!EK7W<K0L)!JR,>!SK*'!;?IFW('I<5M.?2FK05+,!FA7
M6VT'<"W-HSO1'<<<ZDV7W3BRAR(:[$WW@%12<F$LLX4O?%A7C^ ]HQ7680T'
MT;E)\/X16'*/37,DDFPA_P;D6*1;T>HYN<H_O42[3$^Y;DI6:C55SD2I_8T5
MUNV82V8$HC5%<"&;./A=P!W>E.E1G^MRW_I41@,;Y@W62F9I?E&WVF?O87IV
M7:/0%$M#SY*Y6,C:1Q=HMTV*90W2.F>U;-,@;C.DAT2.G@2_<0WIL?3;,YB]
MK___^9\7PX\PJJ8^C/.+\4>\K/JQ4_VW^Q^Z=Q&X+7&O5((#F9)( K(Q7"NN
MO8N)C,\8HW8.91EL-8)>Y;VPAMM(??GH]K)?-X85#1@,+AM(4:JLH_'!@C%1
MUX:(B6:"N5\#MT?3JQ[V*'_8^=GM-=&E+*(K@-'EHH4*VA<>M T!DBP2-'E?
MX7Y5]%,BL;Z"_,.5-[V\3D<+NLA(\Y0Y)W.]^/,L8JKK9_0F.E#%-6E > ^N
M_6W^.4Y)DN0CXW!1E6[ #828:D5S7Q,OA"D,."K:,X3@W/!0VAQFWH9R^%VY
M3Q;<-N_W$G4#$VW/$@J:-BQ?DW,4"J0AU,+#7!>6D]7)>.Z4[I)AN)NU_PW5
MS&A)J@.JL$7W@A4\7Y#^.EWDDL-H^#^8?R4ISP8V:(P!"Y.Y%C=*$AGM$R2K
MR,%+@;1Q=\G V9INVX!\6.1JIIX&N1H=L=8Y@016NL@M><3).T6^L0;B/0=6
MK$W16V%5:++';87R49)I!P4U",-\F]YCOACAJ[)>))>W!DZ"(1?"L51J]Z#D
MD'FM$LNEJ(!26>>[).5NS:).Z Y5]:$E9_I7P[%K-%S'S<.HEDYY^Q[QZP/D
M5!NK):Z9#;2"ZE $"\ -XU%+G]! :5,E>1.@8]WM-5#]:HY0'RIHD3^V!M?R
M6+ +LJ;IAANA'2G/L!<5=N#%'O(_+$/( @-EC&71U4":7"(#]+2#)HC*88H:
M#[9\'#.G\,#$V$;LK2[GGEU,I[0R7L9"+ _\R8T+7,I%_211>[UPYKEUS&8C
M@XY"&FQ7UG(-H",DJ/6DM'5^][X2WWBD<\@KEF>3\P^3<?UJ4HYZ+KT3D/:'
MV/O+9^7$6QON!3G$VB:M:\/('!QF(;Q4R7BT]Y]X[P2I+X=HLQ_WQ>8'%$KS
MK&A9 ++Y;0WG! <L!*D@&).L:))9M!7*O?L D]0')F1M4G%,8*K>C78L@BBL
MD)]3#,])^"8'"?7EAU],V['@5MO>;87;X'C\-YICGW^#Z9\X_^5BG&=/YL]@
M.OT\')]==N,1//&B%ET6:1/16606O2ZU+X5WH@CNVAQ(WH/K(=.B3Y6T: V^
MUE5=!5F[<.90R.ATGIQ66%1*)_?51W2+%G&F3>^93N@>,GOZ5\]!#[*_OLM9
M&I\#X9-'36:F,[5"FE&>^: ,,QJY2$*8S)OLM5OB?,B\:JFR!H?;7>'^/AFG
M)6(H,:F4:"'%Y$@Z@;,@@)-7DX5QTBMOFT3L;0_U.\]V5ER#?,V7D_'9.YR>
MW_!'!D[9X+WT+$-=7PMX1@Z09BD'$R KB[K)K<D:+ ^9+/N*OL=TE,LZ3;<=
MU;?O)]-YQ5@S=];!#2DEZ039_[[0.DF8?:T(6TO+:VY2C&HEP&13+:RMW_T0
MF7$(-31HE=)%,)>W06"R+9F[VFU2D0O :V\,T(06C8*4+(<FA]^=$1[J3O9P
MJTP;Y9S*+>V:MNR756!$+,+7NX.8R(#30;$H,#$K#:T[V2?Z:0NB;<!S_#O:
M7I6_FJ?;@Q(:^/KOIC">%9S6M-.W./TXK/UO7Y4U:&?OZ)&S]3^ZJAK582PM
M+W;[',R1"EGTP9+)B:GXU&D;)7CA!)D"O*:8Q1@9^"R90H,\)16+:U+I\/3I
M>E]9C%-GZS::;<#2/]Z^FR[R]S]_V4F6%ZS*!%5,S"RB(F361!8A>>; I%)T
M-+2;M.#<9DB']Q6.I^I)$STUN+QY-IG6>/@Y/IU4&:V L\Y%C(4S%2R9O*76
MDY6"_!K- 4,QQHHFR>QWHGK$/.I/6RVR%&I\QU-(?^)M:-H59:/VK""-7*.I
M\43D14&Q"C68H$N;I(3-F!XQC?K25(-KG6<XG0_+D'ZMCO\Y?IC,AO,K?AL9
ML^6*U;^8!AMHT92%"1MLC5<C#ZE))^P[,#UB$O6EJ19I";6U)@[/QE^?]U^U
M+!,Z12>!"=IMF1886 C<,YN*]I%(KE633>U.5(^82/UIJ\>;F<4A\).S6IRV
M[K77UIJ*3D0:6."Y7DDF^DH88)AYMH"0P:P<G6XX:K_UZ$=(@!YDW* 8V&\7
M8Y+$!QC=Q%1[<$5/<]K3^&H"*+#HHF2)C';@LDBAFUSLK@/S")G2FVY:W+O<
M7+Z6D*13UB9#IK?,-$;-JR6>,T-KI26L9&$U"7=<@^41LV5?S=PFBSM\W/G;
MB_-SF'Z>?+D[*)=W!P<*-]_F_>VCS'>6QDIP.>84<E36(ZT.2@L(X&F],!(,
MS?"<[P\NWP;)(6/*O>>8K'$L>**U)DU?=G4*((TQ9(H+UV2G.FA,^>HK5LHW
MG$_(-?D?S,\FL_FB>NG 6B&LMYR9DCG3B40#V0KFO(,<P C=9D'>%NBIQU-L
MPZ[[PK)Z55J#H]%[\*9T<7XQ(N\W+Q+S_QA/;]1Y>%I7 WP'GP;&EQB"E\P6
M*YF6M3^SY=6DM5Q[DZR+[@C,ZX;^$=.Q@7H/4!FFZR!J^8@O@_!.>NEH$-*1
MLZ6Y)1^;/F*"+"\'+EDMFX0:]H+^.T?[5.\1(_4'.3D;DM<LZ%IE";4BVQPL
MDUA RH*I8).#N:X 'Q/3>E%2TXHS]\5213 ZTS+,+ 3'M"&@8(MC1?.2C?/)
M"OD]RK%7$K51SJE'.>9HBK,J,M A,>T],##HF($:1"YL%&U\BV\VRG$KY7>,
M<MQ&":<>+M9E+-^C''>)<MR*)2WCQG91\:G3UC@G4FTTK:PA,U,DP:+/AI&S
M+JWC 4*;8*'3I^N.48XGP]9M--LC2S?<#SKMO'8*R4))]0@_2N9SX,Q:#SD7
ME=/J_?TCN8/=2DUWW\%N(^,&1V]WQ$NF$J,WHC#DT=>D8,<@*,%2U$(IQQ';
ME"1]L'&MN["F9SVU*#%Q9Z0D^" ]0!UD#;J5F%A,M+PZ7;0NPBFOVY26>,!Q
MK?OPJ#]MM3B_NB-:$AP7.?O$^&*=K%5W(I(K8QSJ$+1#WB9)^^'&M>Y#H[XT
M=?"01,* P(UE1DM-VZTJS OO6!:\I$(K*/=M+FT?<$CB/D3J3UL-BD6L#8)R
M( U(EQG*9)FVRC ?B.B&0S1 P&*;8DD/,$!M'^+LK9L& 8U? E+JV!>>I7=6
M&*RC2Y$\RV*0C#/A6$HZ6ZG(N)=-*@#<AO*P3ROW%'T#8^9K1,_(Y#J;3(?_
MLZCW>M74N0/"MOUN[X-XK*:W^RGS3F[TIHD&OE0'I$7$DA4M;%PXFB0.!0N%
MIHNTH@!/MD;K/"2NW-OZ]M!4V48!#2AR71OG1O3C5<0M0!1& 4-74FW>Y1GD
MVJ+$BP"<6["Z3;K-1DC'Z&+:KP)7S=5^I-_C0=[B6'%-D:2KPR'O0'AE60ZQ
MD$7D:3*4()A!)U!*[7U9J;>^X0AWXRL>C(Y[E.3&>7_(>/8UD4I8?^47&$X7
MA45G93(]4JQ[7]C:Q\$WD>)*C+R7P@"2,ZNBU\;12B*T-\4($"Y&(^^/D>\+
MY2'CYS'P@HG\>J5M9!H]KP6^:DU(R854PJ)M4JOEH/'S=[<[?#89SX?CB\G%
MBNY>UPS?RF2<S6HO12%_H]]\/QM8U-$8E,R):)C.7C-06I._*XKTQ4O3IA5J
MO\,X]?"^;9BY:B$<4>$-K@?['<V-,-KZ:X- 6T:T(K-<3*GALHY%ZQ4+R?HB
M-*F@3<1^TU%])_<AZ-# L]IO<%>#>C6M)F1-KG8!L\N6&5[[[@BQ*&+I&$8-
M-:B$6].D+%2_P_C.YB8*;W#>V.]H5N>F%X@QT-Q,2GNFR40E.3M@2KKD:'^B
M(3>Y?FTZJN_D/@0=&MSQWCVX]4,:H!:V0.(,P&2F@>0:)$U264*..AN>\ @4
M7@_V\3*S!^4UN G>!?/JG"EDVN1Z;%1$[3MLR8H'7RRS&#!F03/&-VE]V /V
M[W3L3[4-[IWO6>O)Y#[#%^/74YSA>+XX#OKYTP<<S_ -?L3I#$8#%#F9(!3+
M-0I:BRR9=P49TLBLR192/(:Q>C_RQ\O,OM7:H&#/W0-X,AI-_JJM4.G[9U/,
MPWF=2V\PU9"@SX.ZX,M8%D6':W"((D=0.4DNH16!6U&;EQZ>DG>#?KQL[%&9
M&XL!'2*7-;F@O%2>B93K+9Y4#)S@+*=(?ULNP#>Y7O_&<UGW(58;Y9QZ+JOP
MUBLGD(EL-=,N&9H,VC$900IP(?O<I$[O-YO+NI7R.^:R;J.$4T\*[#*6[[FL
MN^2R;L62EMF!NZCXU&EKBDR&DSV0L>X70M4.<$4Q!XF&Y(P1JRW5'@M==\QE
M/1FV;J/9PW;L,(!< UFC7B9@.M:FS(9;ABG7$WLR9723>\>'F]FXC:J[9S9N
MHZ>^0^IN9^KRF'(VT;&<56$Z*9I8'@03TI,/ R*%U69^CR4;>@?M]R#C@^>R
M1FT,JFP9H T$#B4+6=&WI>3H3=2ZS1W8@\YEW6/EZ$];!\YE#=J*$)%VYU+3
MVJ0N!"WG6B9.>L6++(V:5S_<7-8]:-27I@Z>RRJ=SRHEP;+PM#VJ @QH9V3!
MQ.2\22!=DR.$!YW+N@>1^M/6H7)9A15(%/?,DUM OH($YFG[)8@ZE*0T<OF]
MV4)[XNRMFXUWBH?,-[B_D/ORK&]2KF\+RLW;@B=I/OPXG']NF7C0.\CV&0AM
MY;J2BN"B Z\2=QFM=BJ #0A) TI>%&:\/Q6AI81[Y>O/I6!]%?X&\[I4?WY>
M&VP=K?W#'G#:<[ O6:VP3023+ 2I3%$Z^!(4IR44<G8B2EHS[V?;'L .F>NB
MI7$):$] Y+6W%B06923G-DOI)&:;8I-3SJ/VBOBZLO%20?3=/X;S]\/QJS'^
M-\+T.D-I(+P,@+37F5 /+E76+)*7QLA?<])(B]P?H2CU?;!/_<I_&^9M5ZJZ
M5X7V?GS7$?J3,L?I$OFRCOM?D_K-[,LX%E6XO>;,VUI5A ?!P";-4 A/9I^4
MW'8L@]@?J(=(NZ,JKO=JFMN,XPKZ<B!$(EP9"O<9L>3(0!229X%:V08#2RX5
M(WDV.?'^.7@OKN\T[%]]/1Y&[C"4:_"7@_EE<C%=&8M';AVYGZR %4P#"39(
M&9A3Z)3-+JBH&U#Q7F#?N=A @3T>:FX_EFOLRZ&0F;\R%"6]\UYE,NN05GAO
M+8NN5HES!B/JB-R)_KEX+Z[O5.Q??0W.1#NW8I%.NX0*&-= .!.9%"$&LF1=
MKBW2C(+4)#S^H?3+:>>$[*BD!DD8W2,9%9=68>(L"Y68EBFP0 8I<YY^8*0W
MF)K<(W_C,<;[D*B-<DX]QC@;@<*C9F  F'9%LJB29&1OFAA-$>)[C/'NRN_:
M+V<+)9QZL&:7L7R/,=ZI7\XV+&G:+V<'%9\Z;9.6SD9RMU%E&I,T6!./:FOS
M# B"2\6;K(.G3]==^^6<"ENWT>S!XP4=RA@R[5%(?];&'"2O+"WSED2G)8(/
M32Y]'G*\X%8*WRI><!MM';81C](<G8F9R8AD^.I2ZR)ERY2S20)H@:5)#?$'
M&ZZ^#XEZTE.#Q>BN.$9K8PF"!R:SJ3<AT;( Q3)AI)7%TWCA>_>4@W&H+TTU
M"%N^.X:Q%-KPN;>,:V%J:Q=@H:3"!!AOI!3:MG$H'W+$Z3Y$ZD];O9_SWVYT
M9PR-S04&VA :DS,#D($5H<!Z%TO$CD?U#RQ]9A<"]"#C0\48^XBJ&*)=+K6"
MJ>.T*Z*N&1E)FL"SC^5[C''[I6)OW1PBQKA&Z8V)8_5*8X<8RYO_?.^8R(U8
M;D7,JN2Y!D_6G>9%12FS3#X%)ZP+( <;4.THE\5!Y;[263ZD3QFMP[4B*2F2
M$BHC24;K8 JD7#"D$&Q)@%(-[D2XH[R^1!O?^'"/.-ZNC^Y3MMW'L")QFSAX
M'ZQ5VNJ" ESVP4NIO$M&2QCL,)H=]? [3,GU'G[$?F1_ZW%]ROMNK"LRAIS
M*M!99-"1=MM,)CJ(A,'7%,2O9'P7ZFWD^I(\T-T6@>6_W%M:ZQ"L"":*Z&)2
M7D#(VGD3/ 8A8K+ L7"G!K>Q;"^#W9?#K_Y]3_+HL AJ;D5*D&*M>654 JTA
M%)^L-<K1Q!QLPK6];/J8<AN>U).\MIIHQH:0:5LE^='$$CX BB2E$Y)LH"SS
MX'ZLV\OPEXOYQ11_HQ&>7YPO/GH-GZM-]BJ.AF>+EC.S/PCD]-4'K*\=GUW^
MN[U%ON^+>])0K^-?73DES](8(U+A.M-2Z6/0N4 T)4@;KZ9"CY+81O^_3B;Y
MK^%H]/MDOML"\_4#]M;''7A6LVI,4DF&PM%JC0% 11V5D*8X'1+M^AN1[2*?
MW5?@E2?T)J$NIBBG=9>L=C2&5N%BH39URA#I<["@Y& SMEUDM,=JL/J(WJ34
M988&@V3$\*BQH 9E?$9GI$.!/O$B\N .=-O9B7,8GPU)U(NCT1V-PY5G]& 1
MWH5J551:%1X,3]XZ;8L';[7EX'2=>Z;XP5WX]I'5/@[AVB?U+K<.\S%S%"XY
MKUV(VM<ERY*MR#UWA?;Z$&]);U__\.NG[>63K']4[U+L-%_),O*B> ,\:8C%
M*U%;IQCG(GKA\RTQ]I,+^4L='KXDFRNOON#E=?A>0)==YIF1BQ1K/KM@@73.
M.%G#A#<&^FFC8+1[P?40@+?I'8O.;(.$Y'2#! :ZYG\H[YE723,)UA29K22W
MX,"#7P [_(%H[UQ9$X?7GRX:7/3?@>]&6?DGYY/I?-G3<I"=PI!]#4ODB>ED
M)"&VFCG";:42& \^=39 ?5Q\ZD-?#0(![D#\.\X'2I*=6W1DRA=YV;N%MHO,
M?'12:T4> S\TFPC6XV+.MGIH<-/_XOP##*<+/[JLPOOY4QI=9/*DK^S[@9?2
M&BT2LPER+<R768Q1+1+'M$U*BS9+T%8H'R"'VFFI0;FRIQ<S&O1L]FQR'H?C
MQ5I8.P"<C6O_E!>9!C$L0[BQ?/[S8CBEM7.<7]+'P]%EZMAL=G%^6YROYN]K
M<B.,KP<KI*'!TA8.F&FP,04&4$/WR&'P67%M1),JK@<=Y0.D].FRI$%(Q!W2
MO#S7O&DX+-NW/(FS^102[1 8(7B:SL+7 AH>%^U;(C.0DS%1B0B']AKN!?T
M"7LP'3;(2KS+>KV-^@U6B=>C]/++<)9@5/-U!ZEP$:/)S'$(3 ="']$K%A,$
MD9+EKC2)8^\!^TFQL6>R;.&GM-#T81V7-4/X'3_-W_V%HX^X[)7-:VRL!YK4
MT@DRJ".OX5$T#F5SBD8DD9H8!/O!_D[1%OIMX#!MA[[.IW=_30:!O/]4"H&V
M6)@6-6E*1LTP>N>UY&A#DX92.Z']SL4>M=G P=H!="T',R@V<INX9Z(ZAYIF
M"_/T/Q95J)VYP/C0)/UC1[S?:=BK1@_KUFR 78O!#&Q4"8T,K :$D3/F-(L^
M6X*>:B04H'?I-'A8X7ZG89_Z/+ISLT!-OSO@R:F<LF-"U#R]HCWS69#1BQHS
M^,A3EB?"0OK=[RSL4Y^W6;AWE]OM4"\J8UU#E\G$& ,P5)RDQ0VPX+ABH)T)
MJ1@;S FX+%]A_L['WC5[FY1[=[R]Y^Y)>YX%U(;EH A=(A,V*"2:)%^L)]O!
M>SPP[V[= >Y3@NN.]RPK_>AD/>F .0&<:5,<"Y);EA/79-8''Z%QG]_[(!ZJ
M"%?SX]-&6CFAXEN;!O7T\V_P?R?39R.8S19U4WS1&6.Q3(I8^[%'8)YSPVBM
M2 92,#D?>MJM8CQ^D:Y^6=)]2=]+6X<]#?T"]'<XQV5V:!>X+8MS;8GW:/6W
MVNB_.\]Z4]X)< ZM+9SL',9=G8HA".8C%J(&#S7=TW@?'RS7[B^>=9)4VT9G
M#2CV?$B6^3!>+.[]AV?OY]<-&VO*"A1@F5<9Q)18=,8P'H(3R6N,NDG_CTV
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
MKPNO-T#&F.><!9\34T%G!"X5-TT.XN]%=B)50/=CS.8+RC[T<:C2GE=8K\\
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
MLZQEJ9&93H;3LIH?;K'1AS2;]F!9@QNQ=N-<EC:Z,512AL<@@3F@'9CVY,+
M*&0B:)4*]RYW:EQ^0A/JUAB_SZFCS*G]N-9CXX3#V[8"I96 EN7DZVXL/0LZ
M*>8-]Z!\2#D>)TZTC0]UDJJXMT#[S1D4!49K3&8(6C.=96( I#5MM""[JLB2
MW3>JL&WD\ VME-_,(5(S'GY33G%W<0R4 YET\$R!$TRK8AED&9DR*KNBP%O?
M)!SD% ;_#4W 4Y@!)SB;MZ+O-S6%M^U_(CB/25F2@01=C2!-2S(FLD^MT"JJ
MB-^:J_YP>^\\JLG<DLC?\-E:!T$$%3.B8UP&\C,CURP66NG0&,U]2=)%_+9F
M])82^#ZC3W-&MR3RMWB^=S'%V?U2\!J<4:3+Y'AF&C S'QRR*#W4"%7O<Y.\
M_],8_O>Y?)ISN1F%O\T3Q?ME(+UP(*QA'&J!2\<Y T[6BBG(DTZTF+DF^7BG
M,/C3J8(8:.HX*)I9 ;SVM[8L>&>9<S;4!JPF=RJ%L[T6'F,5Q'U._(ZB\6-7
M05Q??X'DA<X56C2"4_2'M+0!(#(MHBPU=84VAN^%?_HEPIV%?[91R+=2,Z7+
MF+X7_MF^\,]67#E$\91=%/VMD#CSB+6/(A,NU+S\$%FTG(9:VRLF=-FN]HU[
M;.3=JO#/R7%W&_T>ON!&=BF&6BS0FUHJG)RU %HPL+X )U.?ZR;';H^AX,96
MBM^NX,866CM^MNYUSE2GSDO+'CCT54VR6E/OOEG:7".<C7/I#B'=E02[;%#'
M'*.2"K2I <'2<L6S$L:$$._+)&Z$^ !]8+Y@>;4>RQ<_TJ/C@@?)O'>9-A];
MJ^UX8!R4X<8KJV.7:O!;+ZP]C^- ?<BT1H') I-(JYH6X,GAIJ4RN8!&2"[H
MHR;>XHGV(3LF&W=L2K:-"ELDL5V[W/W([M+]MH$6-Z,2.5"&Y.9UJ(TJ W.Z
M) D6,+:IC=AD-(<ZA3LE\AZ?%J=R//=B3 8%OIW33*Z/>[D<Y\)G4K9(E95D
M$$TM/&XT Y4B<\;1%$9PMDT>V1V8CG]T=S3"3-HHKH%ON0':TO_I J[EZ=R=
MZ(YSS-:;+KMQ9 ]%')PM25OAC;0LV*R8+K7Y0>U=(+DMR4:9DFRRU1Z!)?><
M9QV')-O(OP$YZF+YJOPZF2Q[B"]/.ASYE4EJS@ROG<(M%!:,K/%Q.ND 4B1L
MDCRQ'L[A'8$>=3;I7> -S/@W.$-ZX/LGX_P</^)H\J$.>^EC+"$JJ.T-T; @
M%;_LNNEYK8--N'6.)H74JDCP?=@>$D'Z5D7?M2#?XH@^/UN6-2243_(YB7LV
MGY($/EXA%$Z!,=HQ*4/M9Z2)S[D>FOIB,2;'95QIS+NA*&2GUST$_3<2[L;H
MY;[/H=_@APNB+5GJKZ>3LRF<[WQ2?/M)_9SEWH-PY;05BC")8\@)I"Z>9"LD
MK<LV965<=LMR9G=BW5^&^QZZ;WQ@(XEV*HB)W@83DK(\:Y]BU+H(6W*V:)1/
M88-@>SIO7@2J/1O!;/:JO)LBS"ZFGQ<O_'+PX0R@"[3Y1F$UTR9)YE%XYG/(
MI68.%&C3F>-^;/]_>]?6VT:NI-_WOQ#@_?*R0"878("=R2 S@X-]$HID,?'"
MD<Y*<B;^]UN49#N6VG9+W6PERCXD<6R9_;'J:[)85:P:[*[K%.VKF_6GQ?*A
MD[$@<\2A$H@LN!R8!EIF@-,*8Z61)!F3H+2I<-,/WQD\PR/SYL!AUD Q(]J)
MV\VI&^/'CTO\2/O@]AKY8IM[M7KX7)Y)=-9[SEG.L2;W*=H8:VHR1UH*7-(
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
M;P)!FX (YSJKCZ2MYSEP@JB?-"R?.*COOEW_BK#"__R/_P-02P,$%     @
M98']4+':XB65# $ ^A<+ !4   !C9VYX+3(P,C P-C(X7VQA8BYX;6SDO6MS
MY#:6-OA]?@6V9V+7CA#:! F20._,O*&ZN35OW:9*MJ?7L9&!JY3C5%*=S)1+
M\^L7()GW&\ $*;IW+N4JB03.>4 \. #.Y5__U[>'"7A2LW)<3/_M3^C/T9^
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
M"8YTU6_XP&E]]V(&SCS>-C!)/;*Q7(9_3F45R5_'/"V7JYQ@SAEGD$8R,:3
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
M>N6ZM@CM$F'K=H+7'/C _KN8O9ZPLOQH/M*EVQFA4B:2F TX,?MQHI1-&I3
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
MAD5 FHD,RE@@+'.=1"SR<9HXW=W0[A-N=N,"K^S9I-\R<P[@5&5,RP1RGAJ
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
M.@;!%Q5Y>"BU8T#ME=J#\B*6&_'KMJF>('$2<)+!&!%U"!<T@'F*,D@(%Z'
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
M/+PV0^_G5?F=7/*F?ELM%C_7E6;F<1Z3,,AC&,0D@HBE&:2<1S"F*2$D07%
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
MJ'=WVS+GYU6I&^;<+1:KOXA"0?W^H12\6.L0XGF0TR0-> YYPBC4MT60BEC
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
MJ8S"D- X=>OW>'/.J>T=.Y%!+;-KA:_;*-M1NV?L!N;D$]CVPA@4&0]A;SL
MY+>$U>UI1RX]98W#:<DH^T<[UILA/XJGS=,W\:0H41'A;T2;Z^O7+_+G52F*
MAV4=SL7VJ*\*YQRE1,HXAS%E*40R);HL%(8BDS1"D4S"T*KR;R\IIL9,6^G!
M4R.^OD20M0* -1H OE,!O-L\@_7*L4AAMR6S([7!%V)@FFOD![NU^&UO+1H=
M0*L$V-/"8\V9/AAZK3K329!QZ\[TP>JD\DROP3H$!]R3'Z^"E-7J68>^BA_D
MJ>EE1^N*?4NR:.YWOXORI6!B'@5$I!()&"$L($J(A#1E H:(("KS6,0QM\Z
M<IY^:HRI^\\:#8!60;=\V%,"T%?0JK%U9S2*.+BUW=?((II@4.0'ILAI@NX0
M2C H^"-%$OA?!+<H@LX87@TB<!]UO!B"SAH?A!!T'Z5SF?)29^I^%/7_?S9M
M4G7L\C^*]>.'3;5>/8ERUS%8($+C."(P#'(&44X#B!/!((W"0- @3T1(W"X(
MG.:?V@;SQU+)M1"\6R2!*_BV]P:#03KX'4(M,7C7ROZ3KN[8B@_^4O*#5H%!
M.C5WQ,YSA6PG$<:N<MT%GS.5JCL-TXWC?A55)<1A98(]E[@@F"=!3!6;$?4?
MW6J(H"#7Q6XCC@3-@M"J:(#==%-CL%H\-]ZZ :@=3?F#:6!6J@6=@:.2(]5
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
M-H'>P(SD]6L%O'TQ8PN. S_W!FDD F[!$HV@?_/$J%?UOTJ9YY\<CQ.O2GY
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
MP* P$@->ERO2F:#/HBQ6W&T/LEP0NRW$/\A#WUKI4[?N(U![KM=BJ9LL-VJ
M5@_0*#(#GY>LU'%Y9BUV>H%:,7_<[@:D3VJVG'E49G5#XY@8'9_NR&OUI4[U
M17XL=,_F):_V"SJ*.$ZXP %,TD3Q&=%4EB/U:Q;$DL><(LH[%+"[/JO5>S9^
MU;KVUE>GO[=2.W+6=; MN:H_=N-P5"NH!NQ+R=7>7KZ"K<Q#5<^T@\<K\UR?
M<5S&L=+^A&GLGNI<+5.HAQ[OEORC>!&+U;.>JZG W=XP!B)E@H90<*D.^R+F
MZK#/)8QE3+(TC!D15O6R'>:<WD&]%GD&]B2>U?O[\D%9R,*82XT.[E4R;ZZ!
M'?MX1G9@"FJE-3#NR=O".,#EI - GJM?WIQV[+J7MCB<J7AI_6@W3OI]I>SE
MJGA8:MNA^?XC&B<)"2D,4)XK#J()Q$&"82 PYE&.!(F<JG><F6-JG//[:JW>
MBE9&'23]OP5_T#3S>:F+CMH7,+P&K!VQ](1K8"*Q06H ,KD"BD_R.#?-J&1Q
M1<]C<KCVT8X!K2=A8+^+=5TT>3U/N6!Y+B-UXHDT*_  YEFL0(PC3"1.$DD#
MI]C5*Y--C1ZV<9+E7ISD0M\[EW498F/:__=H%L6)V6'_>SC#4:BOEO47S?PI
M"L)\IC^O0Y(+1>:.C9"O+HX=L_B"?&"*.1N52DSAO(NQJ;.FN+?'C%D;M+P&
MH%Z;;]Q84PO-3\)*;9[I1DN_JA=-B,.TVNUU=GMB^ZAK%R(24\XC2)&R65 :
M2451"FB>1SE7OR*J.YRLUF1A1U&V$SO1U7;ZX5Z@^Y5S2Q-KC.V89@CD!F:=
M6F0=PWB4JK^5>Z83HJ@PW4_\T8PK5#XIQWKN4>G'%9%C*G)^OF/)$5V&\_Z1
M+._%T_.J).7KYZ=G4I1Z>+TEZ7*,N^*,QV4;YQ03EB<T@!D2.JPCX)!FC,-0
M,$J)"*,XHQTNE/M)-=$+9[6I+$A5%;)@NP".>O-?Z,04]9?"U+4V2^M8K*3?
M,D94X"Q,U!&9!Q2BF">Z/K5ZV5C&L?KRYR38^@4FNH)OMWCOE#V]>A'EZT]O
MOXX\P(@E"$J4J.--$&80XXQ"G,HL297MD$=.13)&6,51[V0G^P+:&23C+<?
M9HI1!*Z5)G#=J@)VNC2'(5-V?*?/#&PU@NK@!"NED\?20EZP]5IHJ)]$XY8=
M\H+>21$B/Z/Z:PLWCU@81!&+H! YARC/0DB0XMM(Q@D6H?J/9/,Z_N7[FI1K
M:__6R50N;^OQA .&*C9%WLE:G2$>BN52'S$4C78)^3D+<)BQ)(X#I+8LRB"*
M"(64J-<CSA.2"5U$)20-P)^6EK:('WC;Z48!5RRY5UBMO8&]@!K>_7?:&&_8
M=G<#^?9.YWGS)G97O'>7/]OQS+D4]\63V$ME>"^60A;KJDW^(@2G(LT@R](4
M(AI$$(<LAJ%D) GR0)+0R7=W:\*I&:I*7KA6 A_D@-%&9$>[]!;622X9$UD.
MXRP2.L150J)+>F3J'Y*8BXPQ[A;BZA/M<8);MWCO)SJ]'P9O2TO?(X9#V_+7
MP!O B6H+C5=3_-:<XQK;E@B<F-.VSW7MWMZV+M4-V7X7?S7>%+5O?"U72_4C
MJX/][WX4U5Q&2"IK.8 XR&.( II"DF@:"B.N#,!,*%O:K9&[P^Q3(_R=K* -
M!:_ '\^FB=*?6F#7,D%.2V%'28,!/# _]<"V0Z_W#ACY;?ON(L#('> [8'/:
M#+[+(#ZJL9O_?%ZRU9.8\R3)9"34^91GNO=+1B!A-(81#Y RFS*1N"6S7IQI
M:CSU34%+%%)&N#[EU/?1M+2(?& TM"ETXG4U23J?K\/5LPKZ&2B&*W>^/]D;
MUC4_H_/U N;G'O!P+?CAD90/HC7M9<PSFHH DEAGUT1IH!,%U5&*)R'"%/$0
MI8YA[Q>FFAXO[-_,-*+VN+8ZQ+7#Y55GM$:]PFJD'"9L_088@]UH'<[V=O=:
M9[6^>KMU_HF.AZ$C9\21JX*QS=-FH?W6OY2KJOIC60JRT)U1M5NC:71)?LR3
M.(E(D&0P35D(419%, \E@;',LI22)&&X2WB%%^$F&F5A1 :;K<S&M>M*1GY6
MS_)<-=IBC-49[Z;7=@;VU +UBNT4:[R_M.DJ37YX/)_YQ-KKN<V+8..>YWQB
M>7+.\SJX&X6;!L5MAOWGY7XIO29IZ>-&W*^^B9>B$OQ3M2Z>M"1*4BD*W2%;
MM\6IYB1FN3+\8ABFB*N38JZX6X0A3,.(<AD$*$NM&H3Z$6=J%N.V@L$[+NJ?
M?M*!J6R_9*>HU7/H(=]_U:YS]OAK,3!9;Y?A\_*P7&J;4:GT ?<KT&@$MBJ!
MG4ZFV9?E!NMIE?B*F1PM\^"$5NM KG%?GF)Y]N4!7"V@>K'*9@'%=@'E;@%U
M<[SJ;_VW6;^ U_NK'M/LFD$:8;-G>IIEE,W2+R+M+NEYU&XGG/N2</%$RO_<
M77\$DH4"0\Y1!E$4,9ACM>$E.8H3PD.9ADX%RX\GF-H6MI//[7!Q IS=.:$/
M' /O(CO1!KC*N*2W3_/[9(Y1+>E+&AX;Q1<_U[7X\HXVO@EC39M"N+^(I2C)
MXE[\6+]?Z$(V<1Y&G#,$TS@F$.$809H',8Q30D2"L0C=RGG83CRU%]Z43X'O
M3VO+?W(Q5)WAMZ.'(4 =F#8.,&QDKFLQST C-OA3"PZ,Y%Y+#KN!Y;<"L>7<
M(Q<D=D/DM#ZQX_,^O"]J@KLE;X(232A#G 4HB1F#(B>)HBK%4C0E.20\YH33
M*$JE4U3)C?FFQE"'[H5[-7ZG\)%;*'=QR/3";E2OC UL/1TR%\$8SBMS.N4;
MNF8NZG_=/W/YL7[5$M7!Z&"B>9*G-.9"G5UDB"%21T^(LUC"/)4Q(RA.49#U
MJ)-X/-]$72D?2/4(GAN9NY5&/$'6CCIZ 35R.41=P^- 2/_%#R_!,$39PY.Y
MWJ3@X26-+Y4ZO/CYCD<C]<V?(QY'C,E4MUVC$#'*=61\!K%,0X0)1JE;E)<>
M=&H&@Y;)\=BBH;$\DC@J//1QXYJN[D>(/>6\'@_TN..:_GN:G)CU^__6[5WZ
M9;7B?Q6+Q9SQ.$TXEY#HFC8H3V+U9D4)3!&)@X2&4118.<2.!Y[:.]7*Y?9>
M;6'*F$2(!A**1*00Z>Q2&M)  99RA"4.&.^08MH%K#=(*S4ER#X*9NZW0!S.
M3,6QCD@&!#.:1Q3R-(L5@0<)I#3/8!)%<4)Q$D<R=LTE[8[CB/FC7E&TX_HN
MN S,]S??0V?./U;2)^]OQQZ5^X\U.N;_DW_OV#Z7/0J^68@O\CBP8Q?4\6NQ
M%)_7XJF:QQ3)'$<"9CCCZKUEIA::A&%" T:4-19'U*GSK<OL4]M-+,*IP)]:
M>F#$=[SI<5L8.RH8#.Z!^<(;TNY]7KL@YK5%JY, XW97[8+-26/43H-T"!O[
M(,IU75](S?51/*^J8OTS*<I_)XN-^%A4;+&J-J50MG 415C9(B'.,$2Z!&V>
M809E',08YX'((V$='&8YZ=28;4]L\$7;*T;P&="B R,[V GO$%YDNP;7V6PH
M9(<^Y+XQJ Z160. .U+\E1^0W<*J'-&Z&CQE.]9X(5*.VAT$0KD^ZR>A8[=Q
M:+OA-[)N?OM'L7XLEE^6XO\)4F[%F#.9RI"36)WJ YTR&G*8<YS E&5!& 5"
M<N[4S[J?.%/;"D+PJL13ZV'JD??+U7!<&#N;=CRXW];(_6ZR,W8\-@.-;J\S
M4[:<U?T2EAQ\+Y8/RB!N_QE\5/\R UIMH-0?+F6C&_)#YFHX2O2F21K=T+N5
MG=%QU!X5BW6X22D>Q;(J7IJ\7IWZ\;M8?Y'WY,?756DZC*[794$W:RWJ_>HK
M,5T&0HDYYER7N9411$BDD&(<0A:B3%"94I)SE_KJ/>5QHN(1RJX;=4PH^5:?
M)M]_!I;"M,M;7TG)&F3)[#AZQ(48F*3K-3A0I2DB -YI;7Z:@=_KI5 JS4"C
M%-C72L?\UWIY+I':'V#O-5)[B#1^D=3^^)VMDNIAV&YT?+T&:]W'>;/:'.7H
M?=5&NA(HC'Y3GWBLOI2_KI8/HMS+[-,?F\N(T@B'%,8RQ1 EL2+K7'+(:2B2
MG(J8\]"M,/F@\G8(Y!F8SO\X3H2>@3 "3T8);6\_J']6%KX;GP^[YG9L__;K
M. F#O4ZGWJE[G$<-6HW-NO^V7?=:[<-$;/UY?[O%* OD<R\95N!1=YI1L#_>
MA\:9M-LN]>GI>;%Z%>JD4KX43'Q_5%N?2>38CUMO#KCJIR_RFV"KAZ46\JOQ
MWIM@]ITG3*2"<DD22'DF(.(!@B1-=->,. XCP7.2AB[7.9[EF]K]3JL>:/0#
M1D%(3U)IMK<,37N&G9J@UK/.#^GA\?3]3;#;K=YP?0?>G_97LFVI?J=[VC^(
MNN5QDQQ5WQI](,_%NG[YU5(_Z=)] _E4!T+<YX;C6\11MYB!\#W>5(::IH-O
M]YMX5B_-HYK\:[EZ*,G3%[9>45%&08B;3%Z>YA$C&8*(4JG^(P3$$>8P%G$6
MHD!BGB)KM^[M^:9&\SN)02,R:&36 6C8P=UH@;6%^]8O@@,3Z0WP;F=6=_O&
MVOMK_:(YDJNV-ZIN7EI[C*XZ:"V&&<\W:Z_3@5O6X;&N-T]E\4)T%^*M:T'[
M?]L_WE656,]SFO,L)P*&/,PA0FD.<YK$D-(PP]R48A)N[0ULIG5Y$<9I<5 7
M62-/=4]B95F7.\N::)$=O:Y6X-O>Y/@%=/ +F58R8$0[=)?6.)M_\'F58H^0
MWQL1BWE'OMBP1^+T?L+AV0[VH:U7]$XW ?]9?1^U5[2I5O>S$L#\N@M,"$.<
MHDB1%J9J<91!&2K2"F*89CH)E:69P%;5A >0;6IV)X*)"2!Q*4+F>;4LK-&W
M6X.!&7&KF"X*![1J>Q?6=1?'G7; J >T?B9:I *UAD"KV/QE1ZAOMZ .AO';
M+>Q(1O290/AJSR/!]0H_[5:8F!66:OKU8QW813?KMIZK+&3SUQF0>IU?M-*^
MBL\-LQ17;77/4XYGUP^#U<$98* INB9U;^\>M3.B)&RM+X>,Q39G/*4RT,7K
MB#HLH!1GD%">0QGPD$5A*G/IU#GYVF13VS[K*_7U"LC-0A:+!6"-Q*Z9X5?P
MM3L*^$)MX UO3TS0RFD<$XW][S/+_#8@?K//K\PW<E;Z;<U/L]4MGNE&'EL2
M^KQ\WJRK7\6+6$1MN\J<YHS(#(:1E!#).((8Q0D,.$IS(B/*F5/ARRMS38TZ
MOA</2Q-[OUR#.FKM"]75>8PU6(L/WAD%0/23&YU<0]R.33SA.#"9[-\>U(+J
MOD$&L0&J:5I@XI-/KDTW*IU8Z'W,)C:/=+@F:"KBF6*27YZUX?Y5?1_:Z_@\
M1C'/<X@$I<H,01CB+!0P1A1CELF4TMSZT']MIJD125OOT0@+:FF!%M?A!'@5
M68L#NB^\!B:,BU!U<1%=_S;:GX%]83?2B;;%L#(8KFH,G]5'?!U$;?"X>JR\
M.L!XAT0;/0Z.?%8/=+/!?BT(+1;FP'@FO^^.5L;BFXM8MV=$$LHTP!"%40JQ
M)!R*D*8TBM3Y+G;J'FXW[=0(=4_JO[L97I8PV]E@_L$;F%WW!+Z0T O^;,7V
M:)>YX>331+.<>51KS0V-8\/-\>F^)6W:&CF[BMV"$9SE5,*$Y5P="%D$B8@(
MY)2F01Y)GF*GRH%7YIH:[;2B:A=SMT)HUX"UXQQ/< U,-.>0 G_>FY/S($7/
M+6 9IJ;,Z71O5$'FHMZ7Z\5<?J1C(/H_-\7Z=;N)TB3"D>X1BTFDSGM)2B&-
ME:T2!YBFG'"6A$[7SH?#3XT<:NEL]D\;[.S(H#LB [__]F"XQSZ?U=EKZ/+A
M#.-&'I_5[B1P^/RG^H::F2B1WU?Z7$,6=0#[G H2B30.H7IA8W7@2!G,<TFA
MI"(542BY1$ZU/:[.-K5W^LMF7:W)DNO*^7)5_D5*OO4?=8XI.X>RW>ON#;N!
MW_[3*+)6U"8M8HCHL2N0#!,V=F["-XH7NZ+[Y4"Q:P^Y,0D7Q?S3<JTHZ8/0
M+\?B\Y*+'_]7O,YISA@)4@D%XIDN!1<I]E"XDB"B.<I8&E"KLL@79Y@:8]1"
M@D9*8,0$2DX[LK@,Y'6"\ +/T":!*S+67'!3^]W[7[4$4 GVMX?5R[^I9_]-
MUP_6/T#]P]XK?WG<45[SFVJUK_;M#W;MH5;O=+K2S8=-M5X]B;*]?GC]L"E-
M^9*49F$B<F40(&7:(TH9Q'&<*W,AREC ,4[<_,,VDT[MI?\HI%""<=V(5"PW
MPF0#LD9XP.NJ;8[V@A7X=F:#;T@')HIMT,E?2E[0"CP#6Y%GH!':9\\T>XC\
M]DNSF'?D7FGV2)SV27-XMJN)\4D-^J ,\E_*U5]JFM73,UF^SG&8DP % O(L
M2R *@@C2-,LABAAF4100%%K5G+TQS]28I]E46UE!+2QHI'4U.LY#:VMZ] 9L
M' /$%:L.9LA5)'H;(^='']DDN:KBJ6%R_>,=G10;6HE_;A2G?%*[[OK7;=4"
M)E#$<YS#6"8A1'E (<&*&F(NHCBB09X)MQ+[%R::&AGLY 1&T#ZE\R]A:^FD
M\(#8T!Z*3F"Y^R5N(.'5*7%IKG$]$C<T/G%'W/I\1W8X7TQA5[RC>O^Z^TQ3
MW.-.W_#5@1W5+^J3Z^KSLJZT\ ]1/#RN!;][$25Y$)]^B)(5.ONW8&(>HYBB
M+!<P#7*DC ^)( YTR&R6)$3@ "'NU$-Z1-FGQF%&<ET_I5@"OEHL=,;4LSI$
M55I=1PX;\1M@28O37->AF?9".:3]2CH5H*_@;+4=K?VL"034K;,- OK;46,P
M RT*H($!M#@  X1'*A]_];SN#B.*/^Z&,_ZZG.QA;R!"MVWQ=_'7'6/ZKE]9
MXU_+U5+]R&H1[Y;\PZ,66,FQ_YEBR8KGA:AVD2HTRQ"2:K_#2!"(A$Q@GI(8
MAC1+8IX3'+K5^_<AU-0V,J43.%3%;??RLE!VV]+8\ ^\W^SD!-^U\U:]917X
MXYGKAB:F3)M12&\A>Y_<J@3^'"0^R2?&/G<%+W*-2O<^D3SF<:]C]PN]7,F?
MBV6Q%K\6+X)_7JHO\D-!%[73MOIYL];!GD^Z\/6_S%[3%"(T$7:[]Y_P($M#
M)"%F80I1$C)(4DD440>,8QSSQ"WQUZ=P4R/L_9#%G4IU (..EC9:@7VUVNJ/
MW4) O2RPY;GCC99MZ(/%WHK5BD&CF>/RC1*7ZA/Z(0)9O<CW)I&O/I&]%"KK
M=8YN^\+1F>#WC<XY^B(_%HN-^JLY7%1[X6KSC&8I8T+J]*!$=X+)E8V>1>HK
MD*><YS')W,+T'>>?&KLW<H)WYB*I<DS7=@4_R:,0Q7D&<42%VG<IAEB02*U%
MBD@6D8!0[-*&9TCP1VB[TXH/27-%PU9/3XJ 39B$^1&*?VZ*%[+05S[U"H'5
M3I]A%\MN#QUP"0;>)D\NR&K9]:Y9BPWVY)Z!1B-_6V!'Y'SN<JXBC+J1=<3G
M>*_J.DR'+/\VWNE;'>[T\ZI4<R_K  _V^ND',P>E._X?FVJM#T]S&@=YQ+"
M88HBB&1.(0XSW9LL15F:IT&46UT8=9I]:EM1(S 0C:2@U#<3]<\N1?Z<5^$Z
MT0V.[< TMPW":V2?@1;H5GS0R@]V"@R)MT.%@2%Q'ZGJ@&?\W2H2=,7O:I4"
MYT''JUS05=^#:@:=!^GAD:=7G"2-CX0>^TBV><[JO+5YJATF^HC%U+YV+\JG
M<,Y3'B6,2)@2A"!B*(%$!!+R- HP%WE$4Z>J",.).K7-J!4.J,F>P+MB6=>:
M=3P?#;BT#I[U-U^P"3C2;_C1]VH^["E<][$Q7P.MLV>7^:#+XMU#/HRTXSO$
M!T7]K/][V!D'B@*[Y)>O,VP_+ZMU:8RGRA0 O%<[8N.Q5[NE%,5:7P?63OLY
M#HG(I60PXSQ4FQ!1AQR")201C](TQ"C)\K:=Y[W'8#!_*EAQW6&'S_MQ#DRU
MG+JWH_CQ7&@K4V]5G>[RQOQ*> H+&WF%_\OL9DV5@3T FCJ=:P7!+F9L]_W9
MAHV-&!7F?_%&C0KS*/ZTHL+\KXMS5-@ (G3;)K\\BY+H>(9?A9+EZ";QFW@B
MQ;+]Q]HJCS#':D_+H=25H!#.!20,88A2QN)(LEBZE79Q%6!JQZCM'7OKX2A;
MF<%""VV.5V[[E/.:V&TV0R(]\(ZQ%1T8\<Z$_F[EKS_A^333%3J??.TLPZBD
MVQ6A8^;L/$XW^FLNP!1+/Q55I0A6,<;G4J@O'V^*Q::(YQ%/!>22!#J]E,(\
M%C%D4C"*<\2%<&J)?'/&J1%<(S XD'@&&IG=F.TVW'94YA7$@;GK.GX#U$*W
M!L<G.]V>=%0ZLL;@F'_L'^QX+;%69^<[_J1H3)?PJIO[WI,?YJ</C\62-"\"
MRX(TYU)95X+%$"4,01Q& F8QBX0(B.0L<+K8MIQX:O1CY :'@NL AE;T&3#"
M.]X$V*Z"Y3%^ &R'/H/;P3H /;F"Y?7,:SOWN =61T1.3INNSW<M"J3CM4P%
M]+K+Y'[86QBE*6$13%BB3H4LQE"-06$DN8BD0"(*K;HZ6LPU-8*J1:U+[L_
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
MVUXSLR<1-%(F!+Y!S\UNL6?<L[4 R!V=OX5X9D_I6#L?_[9:F#O*6IEZ-].
MB6:9SC @*;039T(!IY@!0CF',B>QRKRR:,\W-3GBM(>@C:7_^B\40?(?E:;;
MYH?C#-D!73<>#(/9P"S7-?+?HD9;_K0(QR '_-=!"BKO>KZU<?5<KWI]).!Z
M_8Y^)/)Z6Q9+599O5@^\6%9T9<GK?EG\4\GWTO1[H0NVET\2IO&UDI;-FJS7
M0I7F;V9M<:2U]&GS3:V_?F/+-HII+K-,$YZE@.>< YPQ O)<I$#3+"<:)H)E
M7AK6HUH_-:KK*)S58<D1:_SS8[IQ7P$W\IQLQP[,QZW?4<?Q6;1W/>KZ7@O;
ME5'K?3T'W?L?-0#,CL3PS+RT0B':&!BBJW&QWK3^(MT7<J08UX%1!Y\7Z9OG
MX]G+&-%OB'RKGM1B]:CD5R6^+5>+U?V/S\7]MTW9%-@5"I$<VUSJ1$F *::
MYC2S@QK% B.<QE[B"U?:F]HP9,OA+)35U=RT]GI+,5R#V&W0" C<P#2_LS3:
MFQK5MD:_U]8&G&0[XA*2/Z\U.2KC.?K_G*-<;^O'*F]8^<W6E#/_L1/Z)[8X
M."O ,*&93!#(:6)6\,R@S!,- 2=2(Y5S[+F"O]S<Y#C%F%G76+0_= SN'9)_
M!6XW@@D'XM#'7+?@Y\TO;K"$I)<K+8[*+F[>/R<7Q[OZ"G.:.9&R#RJ>U%NV
M86WRJ40)EA3G(,U58FO+4<!C04%&5$JH%$QR)Z&(:PU-C4\:G<F.L9&U]FH:
MJQ^ZETDD)&9#GWWTA*N'*.=E+&X6Y3SS^)%%.2\[>2S*>>7ZGL<%=F?\M14#
ML#-VM2RK5=?=>FUZ7ME#X=<_]I<T2G9W?["UK$-^RD_;36D66K)8WG]>+18_
MK=;VCW,A4)RGAJ6IU!G &<T!@Y0!Q03/!(4Z)UZGN,.8.35":M0V7A7+?_T7
MF,7_L?FVVI;&:E=EFH$[U?&$X\6[:NC3$6L]X)5X4-?%J.-CQ']$W>L:/Z/*
MT5D3\VGWV_;.1K];=Z/&WY"G*8-V2-"3F&$L'?<49U"TCTZ AFUMK)) /YEK
MYV;]RC.H$Q G4ENY4F*6N9 #"F62(X:)8$YQG;>9,;4QP7PJZ= %@2KXW=A]
M>% '9N\;R@%93UZR&E 7R9<M!E19,O%:0%VT;B\%=/"TONMOP]$/-O!G)?Y1
M3_4Z]#N/4:(8Y+&9+0M8Y<T#CID"N5"4(963Q"VYR*VYJ=%<L[BL3:XS8V:M
M^ES';-\U^47$75?FH7 <9WW>&\(>ZW079&Y>K5]L9.0UNXO#QRMWI[MZ),S\
MPKX7#]N'MTJLK=SL^^4NC+!AKK=;]77U62WJOWY6I5H_V33Q3# -*0%)DB*
MF90@UVD,&$9(TY@BB=WS&'L:,34":MR(9..'327?1UI'JO8EDMLJ^&U=NV,O
M6C<.>62&].VWRX0U5F\,3&-M1[0NF$E:-]BZ<2,R?D1?5U'CB;WH\W@=X9&S
M,T*'C)3$<_,7$BH9\T9(+R;[]'WV>-D_-WI_D YTZ[,\QZPF^6C^[K?/<\RY
M1@3;(IBQLCO$T P_"@)*:1ZGV(Q N9.@7/>A4QM3WFW7JZB."S#3LNUR8\N1
MF#6F^6='DNHB=H7]>^(P]*2T!P3N;'#"YPO3S?;R>F7<_O9\57SPT'$^ZQ-N
M[#[34W_K&5NBUC9^SH!I)J#ZK7I<E<6F":4B*8YCB!5(B<K,XI,G@*5$ ,@U
M42I6%"7<*[#D?%M3^T@[IMI$.EG;ZAE'<@%:MWVU0( -_#5WK;1@-78.$)WF
M@$?0T)$+S8T;-W+=[Z.@$8=;^D>,B-7Z<;7>9ZS5)&Z6M%+-DS212N8,,(U3
M@+%$@&48@QQRA(1$J2$/W\"1"^U-C3EV 1$=FSO52AO+(VNZ?RS))=Q=-ZZ"
MH3G.SM5-0/:*,G& )T"PR:561H\Y<7#Y5.B)RVTO$X'RL]6?*M\W@C1SQ67"
MLBP!&FD,,#%+"IZ3!. DYBA.A?D?)TX:QKRI45AEG<T%JBL@C1MF\JSGW"9*
M+]<? Y-@R+"2VDF[]U*[.8L^UC(1/ZW66A6;[:6^'CW Y'273"FPY)F%?ZJ
MDM/HA@XD.=/*;>G'58*7F<Q:2^I<+_5V98OHSCF6%&:, QRGYG\PA( 1AH#$
MN6!*YS+F7O&%5UN<&G'O4D([%L_:G$\5_5Y;[9D.<1UW-XX.BN; M'LKD+VS
M8*^",T3FZOE&7R3;]"H&YS)$K]_8<S(JOBFY7:A/^MW#XV+U0ZDO:OU4"'6&
M'Q=5?YN?/NE]IFK-@6]6Y:;<%P52J50J@1BDF)BULEDGV^-6"AB2.%604YD0
M/VGNP6SU^3K'T?=N7;53F-;9J/$V.C=Q,E_QSF5[8R=?OM%@K=SVG/,.]H(X
M3G^GT.DCSH1W,]S]3&36G@'+)IGML=BPA?5K9J/VME:4YFNEA#!(G:K!>R#H
MQ'<P8\>= P^-^=%T>/ &>Y[A[".)FN,%! 6&$C)@MUP!YC9B$-K#U)QG!&7,
M#"N9U\G-\Q:F-O/MQK=YGM(<@>=X-G,+)$.?R'30&.(8YISK00]?CAH9]\CE
MG(]'!RUG+_3[F,OU9O[K>B6W8E/>+67#+&6SQ!)4$\J9!IP06V0@XR!'0H T
MS6.*L<ATZJ2&=;&5J7W4C:'5@-[.Z_S6L)=!O?RA!X-JX(^]%TK.W[P3"A>^
M>W-_YYLWOSW_WB\W,,HW[^1C^]V[73R<1G*C\GYPQ=O"W&CS?@NVF%/%,ZP,
MP'FBFQBJ'&,%&(6:**ZS'/D5Y0Q@U-28I97*MR&*:WN@*#O&AI=)OMIG7%.:
MJ0P!%N?<%E*5@+)8 AWS7"@6*P7A?%G5;9<3Z[5=K:F]<</UV]M.E*G:J2ZW
MO?@"'><V5QS[$QKZ9-Y9[[K]SIY?UW7LA72O7?$>6__ZJEV3T\%V1;*/'K;S
MLWON[*Z>5-7 6\4W7Y38KBNUP%:M+TDR+CD%NI+&SC@$5&0,9(SJ)$X3!)/<
M*VK@4FM3&R)WQD:O5TOINR%Z$5?'3<U0: V],;D#RAH:[2T=8.7MA$G0K<*+
M#8Z[W>?B^]&6G=--/<4^BZ="*O-M6&6NN:$#DBM- $JI!#B.8\!Q H%(.&50
M"<XD;:=P7ST4/KN-])B0?1UCG=YLQ]M Z=9<3U'/ RC=^,$?F9$$.UN[9I6D
M7D!MSE,.!U7B/&A@7-W-4[X=J6R>O*C?Q_O;EZ]V);%=_S@:GI*88(X2!"3+
M*,!<YV8!G6.S@.:0<ATC[A<L>+ZIJ8WYK9W1ZV*Q\/R$+P#J]CV'@6G@C_NW
M+]$.I$%'^NMHA/SR+[0V*@U<]_HY)SC<T?-0;<'*\I/>/=UN\%<'R'.>0212
M*(#.<FB6!0D##.(8R#B7.)&04^RU+#C;TM3HH3+4CO+[3Z ^8:JL]579/8NO
MX_E;"-2&/H?K"9C_B=PU,(*>S)UM;-P3NFL^'YW47;VA3WWPY9=O[%']_,#_
MLSU[SZEY+R "G"8IP!IRD'.B )(92=,DSIAPRV$^^?BI<4)C8&0MO#X,NN!W
M^?._'96A-T># ^)3L_L68,:JT=T!*%0A[G-N7RZ\?737B(6VSUE\6%C[[%7!
M-1A_7J_*<LZTR)G"AO())@#C- :Y(!1(PGFJD-"(P$!JBU6#4V.SRBBS;%^O
M?UCQU;^QQ=;S5.DJQ&ZSFY# #4QX%[43J[0C8^\H"HD'R(RDA5BW.175PP,$
M//0-#^_K1RY5+:6/J^7J4=F4T.5]?6C3A.4V8UD.><Y%RD#,M4W1$0G@2F2
M"X)9S#..I%=5/Y=&IT8R=3FUYDCT56.JIYBW$]AN5!,:PH'IID:O:^\1E -L
MQ_B %))YG-H=E7U\D'C.0%[W!BM2^F:UM&V9F:WYJ2RD6C]/8RP_VY\^Z4_;
MC;6GK,;]#ZL_YAQ!1#.9 B2@!MBLW0!/<K.TRZ1(1&RH"SD501G$NJGQVNF"
ME'O_H@,'N\D;9I90^6BW2EHO9_7L:Q893V\N4GK#*^!&HB_6L0.S[0OT:8@*
MHK=C/W"%T!L,?.D*H+=CZU#A,T C/3;SWGPKV'KUM5.;\L.'-^VI8$:UAA@!
MPB6S(9HQX#060&D8QYE&*>-.A0BN-30U5J]-C;JV1L;8/EM;E^!UV/4+!-K0
M>_[CX.6Q*1@(MY&V!WOCY[=EZ #*Q<W#2_>/MXWHX,7!AJ++]7TK'W?CJ^Z>
M6+&P1RL_K=9?V$+5=+Y=;<O?EFM5Y^5^6)7EKZLZ7?^#87];AAFB7\R5W\H[
M8=ZU[:***+>;9A3R'$.(0!QS"###'/"8YH9\TYBE>1:G4/K%QP]JK]-G-6K@
M_-Z-:&$,M%.QA9W6547=(8H>*C=\*S$/V>5N\^Z7[\:QJD ?A);.HIVK0*_6
MH#3.MM-RZV[4Z6_K2=1Z;*;>W6ZOW;;*)CO'J^M#%I0>H8/"EJ,>TN"1BUF/
M@/UQ*>PQ&NTW2'U6Y6:]%1MCW/+^;BD_J^K)-AF_+?'T<6L'PT^Z-:A\MR@>
M[*)$R3FF.*$\1@!+)H#YC0*:BPPHG.<(HUQKY;4;=)LY4ULH[(ID+2N;[;K_
ML;4Z4CNS_<:8&WO,;1 9KQ\&'B4.'*D2@AM7*E&;3AVSC[LNVCD4O;O>1=[L
M'P;9D/1^HT6C\G<8])X3=*"G]F/@7]>KIZ*L$[O>KK9\H[<+P_%6GZ><<PIQ
MC'EJJP)GAE\%!HQ097J1)RG!-MTJ]U/#NM2<SW<[CJ#5F[62Q::9H$>K9<0:
M4Z.U$JIXLN.H'WU>A)N)&#*-,4@2;8:S7'/ M$A!AC(-B30#'?$:SD*!/<9@
M]7Y9)Q*7MBK-YIN*V&*Q^H.9SS(R\^E(='LB(.1NXU$H( <>;5J3;-9O\W::
M-4B-7+7H:*LRO?JLS =DUBCG#[F]1Q87C$*.&Q?;&W54</'\.><[W=./T7_9
M+@M1/+)%E2:ZTY]*J((( 9AR0RU2VCH^/ >:I#KG2B:<>X5YG&ID:I2RL[%/
MPNQ)%-W8XE9L!F:)9[ ,$)MQ"8"0%'"RG5$__4N>/O_D+U[;=_*FM%H;@J]"
MYZL#MV[E5(5)S!GE(":, )QP#/*8$)#%&>'FUYA"Z3>?N-3<U#[_G;5MD=7F
MJ-N[3JTCVJY3B5 8#DP3M\#78_+@@DK8Z</%%D>>0+AX?SR%<+KK9<I]_,VL
M:94TB]EV!?MU9?^I8^#=_?VZ.FEY;ZO-+<M"5"[,4Y0+%2<92$6B@&&P%'":
MFS5G3/*,I4F:HU$K@_3V9&I\V/@3/54.V8H]JMU],DLN^Z\SJ^(D5XL%6X]<
M8Z3_Z^+&NG^*EV!@0@]9N:3&H]K0?-=YB?Y6O40=5&;1#I=H!\R5+([1"YO<
MW+E3JH'2WYD_5;F4F_LL=&65VPWR5Z=]TU0=O?M>E/-$QFE&\Q@@D6J 4Y("
MQA(KEY&FF'$A28Q<!6F[#Y[:,-;:%OUNK?.0G3U Z_*P<0L& [.XJ_M>>K*G
M?+U50O;@F:.IQI[RI"L4>_+O/;5AV7II/NOR5[6NF.%ML=A:"N#E9LW$9JYQ
M*J!99@-!E/D,F2+ =*X$.L6)3#,EF)]JS97VIO:=VE)F3=WY5W;;_B_1HUI'
M?ZCB_INQ&K GM6;W*A*U,KJ=2=0_ O7?V^*)+>RTHRIW]^^>*J)7NL5MPA@0
M[($)H;74BG;6<[=9U%AK.**Q-^#FGB,R054ZKS0YK@"GF_]'VIJ.M_5<KMLM
M@/=EN57R;76,7!>UJ%HJJS\VTY1WW]5:%&8*,\^82'">8,!3>]B8XAAPJ!.
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
M($62)8)1\TOJ%]8TC*'3BW]J?(E$JV"WV=L?L9T#GIMM W5SKC"'24X @Y(
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
MX<T8,?%J-$P/\[?&:_;<G*3[4GXP/_WO_]'^B_D?^\[_[__Q_P!02P,$%
M  @ 98']4*+<\;^'H0  3)H' !4   !C9VYX+3(P,C P-C(X7W!R92YX;6SL
MO5FW6T=R)OKN7Z%;_7JCE//@9;L7!ZG,U9+()BE7]WW!RB&2!Q8(T  .1=:O
MOY$X\T@,.['S2+97B6? V3N&+R,C,F/XE__YY>/LN\^X7$T7\W_]"_\K^\MW
M.$^+/)U_^->__/K^1W!_^9__]D__]"__#\#_>?[VI^]>+M+I1YROOWNQQ+#&
M_-WOT_7)=W_/N/KMN[)<?/SN[XOE;]// >#?-G_T8O'IZW+ZX63]G6""W?[M
M\I^94,PZ(X&'8$#E+"%*D2!DY1,Z5K3,_^^'?XX\EA0T ^T+?<QC!&^<!DQ2
M!^&,8D5M'CJ;SG_[Y_J?&%;X'3$W7VV^_=>_G*S7G_[Y^^]___WWOWZ)R]E?
M%\L/WPO&Y/<7G_[+^<>_W/G\[W+S:>Z]_W[SV\N/KJ;W?9 >R[__/S__]"Z=
MX,< T_EJ'>:IOF U_>?5YH<_+5)8;V3^3;J^>_ 3]3NX^!C4'P$7(/E?OZSR
M7_[MG[[[[DP<R\4,WV+YKO[[Z]M7-UZ9%A_F^(7^^?A]_?7W+Q8$AC?A0R5V
M\\?KKY_P7_^RFG[\-+O\V<D2R[_^)7V8?X&J56:$JZ_\'U=__/W5VS\M<46
MV7#[$_W@_!GU;?M0@E_6.,]XQM_%.V:+=.-#LRK=Q?+B+V<AXFSSTTG&Z63S
MY&=QM5Z&M)Z8B#DXE\&$J('0J"$HQ<%'CM&F:(1/-QFO1*^(ZHTR5IC^^F'Q
M^7MZ,"F%^_H%U"^ \7-5_(\[+SV3SW[47ZS ]_39B3!>YA0$Y$P+0/%H(!2D
M99)\L$$07]H.0/SU=]ZD_;IVGRW3=XMEQB49DHN7AF6ZH^F;(#[_Q/>?PI(>
M!.ED.LL7?UTMRA!Z6R\&D-^9<HC<OWQ'7!=<+C'_=*:;!YG;<+8F\XJ;3PZA
M]_]]&I;TQ-G7M_AIL5Q/"I-12!' "93$@I#@(IE1)8RV*?GL%1L0 K=>OQ4:
M1/]H.$2JG0#C#2ZGB_S#/+^DC7G"LW3)10:>:P%*100?F *-P99HB?ZH!X3%
MC9=O!0K9/RCVEV@GD'B_#//5M K^'-9925L,R\"0R%>9/*J85 )GK>%&QZ*-
M'W*_N/7^K8"A^@?&07(=&1L_S-?3]=<?IS/\Y?1CQ.6$8X@B$NW(N055N(,@
M9 )4AA'EJ5@VQ 9R^[U;84'WBX6#Y-@%!M[BAVD5PGS]2_B($YUEUMP1P07)
M%_*N0"S,@6,QHBI%YFP&P\'-=V^%!=,[%@Z09Q=X>$&R6H;9*PJOOOPO_$K2
M\%(JZ8!')*,6",L^>0,Q*)*/XLJF/!@@;KU\*T38WA%QB$1'AL2+TV65U(_3
M50JS_XMA>>$&:1N\49:3F5/$ R<>HD +Q:O$A6(ZAR%<B(?>OQ4P7+_ &$2N
MG;B75TS\2#]934+T,123@ M="-Z"?&6DN%J+%*P+*CHVQ%'* Z_?"AF^7V0,
M(=6N@'$6/ITQX5-2-I0,6A<*GG02))1LP&&4UJ)&[L7@T+A&P':G5NRIH&-?
MT8Z,CV?$0=YP,0L?**#6%"AY!MQQ$H6A6-K7TQ;NI.+,1U9T&0 3-UZZ'0XZ
M/K[<7X1=^)BOYFFQI)!Y(_)W)'E\L3@E)^GKBT7&B5 ^"2<">$9>D=):@M.)
M%*H<!='<Y&B&.,[>@I3M<-+QP>;0XNX"/>_#EU>9Q#<MT[/KL_/0VSB7 F8!
MVM=;1.4U.!LC,*L*RSDRFX<X['R4B.T0T_&IYW B[@(KSW(F':S.__EI.D<^
M*;9$I@CA)7L'*@8.P53/2N=BLB@HM1P,)_<0L!U&.CX '4:T/>'C!7WY>OE^
M\?M\DI1+Q3H$QP1%8,QIB$8Q<(EI%;7FA<6AT7'U^NVPT?V!Z&%B[0D9F^WR
M]?+-<O%Y.D\X*4Q'@RI26)X5J!(2."DC2"0.A19,E.'.1^^G83N,=']0.H"
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
MZIP^\I56PD2@S#PF)$'4YH6UO9,7!2&%D&PQ(8K<!#C7B1AWTL_P4-E;P!V
MX\T2/X5I/N^"2E[AYOCLAHPF.9KBBZ6@12C:@Q7MP4X'K(-GF$HAJN":M$[;
M@K9Q9_T,#Z6AU=$!PFX2+TL0CF<+4O.:U"L3.$ELL!*\B\9F(J'Y2<&X@WL:
M.#U[B[B#1*2?%O,/[W'Y\7H;[\"3=D9%LII(CEIQ B(&4R<+.62F&-FFE]X]
MM/00@ URFG2HG#LP)6^6=6;"^NN;69C7GO#U].+3>2KIQ%GFN!8>K,J*G/M
M_IDCLRAT5DIKD[5NM$L]3%0/T=4@X!E,\AV@Z'(LU4^UW.1M[7[VNORZ.AMS
M-M$5]R@M>"_)N6?!0Z@<<24T<OJOXFWRT1^CJH?@:A <#2?[#H!T.0C/1R4-
M*Z4>D-:C4L<I-+0,,$@5K7 LQR:8V6D08>. :A!X["71#I#PXW0^7>-/T\^8
M;X]-K 92"5&"K0GAJH[T\4@(KV,#(K/$7K*,M^G*]3A9/<1.@Z!F0.EW@*67
MYZ^]G%!RQ0F*G+50",$E1I%?/7C*GH/F5BMTSF&;9*2'2>HADAH$0P-)O0/\
M7#LQ^&4Q3^=!H5"Y>,<$,!L**$[L.,4M,)81BU:6E2;>\;W4C#OJ=$AWYF!9
M=P"8,_HG3AB!5A:P+E$L&+6MV2T<8G 1)4L4&#;IH'+V^G$GDPZ>M+&3-'LX
MA)F&.)V=)0+/\Z8S[\EB1D)?G4U:NVHHQY#)XAE$,GTU*R"1LVXRV)B\RJ'D
M6)J4AFU+8#?9WFV2QYKHJ0,;=(VOVP>C%J-!7@*0296@+(4"7M?=6"J+% _0
M,C.-$==5@ED;"#R,LT/TT0&R+A("WH2O]1+W,J_$<BF$-I!S4* H#*@5#@:"
M<CP6SE..37,Q;I+3#:(.4O8#J1@'2+X/_"Q/Z:UW9#1)9*PY[>R0@I%U4&]M
M?A]IQX]:>-0HE6RR%3Y(T;A[7SL4#2#_?H!T;<KMY8J(6GHCR4,TM6N!JP,E
MD2,DKR.+Q$OA;;*G'Z)HW&N+MD Z4/X= *D.[:O2^/MT??+B=+4F=I87,OMZ
MP9-S&:US#I+("90*&7QV"$9K;E'8S&63:&X;XL:]S6@$K\&UT@'2;M[6W.%&
M>1)+]*)FGM1!N%Z"MRZ2]'@R6A0*>MO41CY*UKB7(8W0-: F.L#5/9MYX$Q3
M3%(/Z;D')26MC$+6.)8@HB1K[-J,KM[3BVIV+=((/P=*O(,3J@=6P+5C5U2<
M9U6GE%JFZJD=0F1.0G QHS0"HSRF.=KQN/L8?GF[\X)AM=.!B;IS'W1-C/52
M2#,=8M$<HM4,5+:9.+$%D.E8;+!!NB:G4M^@JQO/O1W4AM1,!T"[7"L_+I:_
MSA,NUV$ZW[2:.SLVOGZQE(**7I/8&/F+Q)HAL86<@=/:R4X77=K,3]^!QFY\
M^_9GHT-KK ,PWHV1)T@N1E12@T.LS9"R)9DE!\$*FX3RS(DFANXN*=TX]NV@
M=:#\.T#0YD;\ND6^6@L^%1],\8"Y-D7DQ(XO40(F<FJQR.3;6*^'2>K&U6_H
MF VCCPZ0=8V)"7>,(W(.@8);4-I9<)IK\$P7DXEP[9MDLURC8=S,IV-? NXD
M\0ZBQ3<7[]V(9M/0X/H,ZQ2YL:9FEEJ>ZVB! #%J 99Q9SQ7@KDF54B/DS5N
M6M11(#6@7CHP28\(*7A1[Z$02JGAKM$4A3#A@0L=,,ED=9M\NP,S8YIE6!T%
M70/IHP-DO;B:D'YGD11;G&." ^<&B15+BX1$!-:@(V=1:N]<"V@]0M/8+;N&
M4?O#4^H/TD$'<'J6\R8T#;,W84KAQ8OP:4I;[34.)RXPQH)+$(*7H"1RB"47
M$#G[&%@4J31!U;=)&SNEKPFX!M9(!QA[B_4<!/,/83FG);*B6/;TX^FL=G)\
MB66:IF3;;9$Z&0\J9OJ/KCF0+B9 [8H64FBGFY3U?INTL=NC-L'8P!KI &/7
M.-AF7,?$Y)*"21I2/3=1@2QTR.161'(T'84S4MA667Z[T#GNH6DK"]=05QU
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
M^7M8YHE%$0QF!3G7Q<:C :\"@Y*C*T9:XW*3'( =Z>PDC-L3%M_L'3&<CCJ
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
MG_%P&"S;J+ #3/Z\F./7G\/R-US_>$KNS;/UB[!<?B6IG4U,M%E(H7, 3ER
MRD9#+"D!L][2+X3BHDFYSC?H&KGSW+ HN.UO#JB2#A!V>SK259!_,^2?9!D]
M,BU F1KL)R1#;BF&2TX'K3SY,M@DTV%; D=N2]<4<TV4U 'X;HUA>;&8;V2U
M$>9]'H7 J++/Y$*'1#Q:I+ .I04NK22'0EA;VD0VN]$Y<J>ZIE!LJ;(.$'G-
M<WE,@I;I$B,ML10]N;;:VWJ6Y4!HM )1U+.'%D#<CKRGGY\SC#O80)D=0/2!
M%;BZX/;K?<O01(K%A%<0I2<Q%I7 UP:2G'&M,JU![IH<7.Y#[+C>8PO0;&=#
MA]-@!RA]?KJB-;Q:O5A\C-/Y1:O VHJ/=%";!DY)C>=-%LZYGI287>12 DO!
M@V+DO3AF"C#OM$-'NX5N4KVR!ZWC>IM'P&AK_3VA)B=#-RMIW71DO.8AL8Y#
M)(6[4FJI)D_D];D$UNCL@U-!-6XST'7S$"V,SS$AL)@+* R28K.003I#(9LV
M0?BVU9]_Y.8A.R"O7?.0730\XA:]6JXG;VN'W$UJ<8F"&^=IDP@Y4# H,P2I
M+6C,J3A.+D;99M'20Z]!DKZ[#<<;;^T$2L?5^.)0\?> F?,+]GI,8(RRP$*]
M8.?&@M,Y0C0F.9>4-'F;JY#M43-F<O0!&KNM\SW$-[+6?Y[.IQ]//YX3;LB%
MPY@UV%1=RB@R^%R(^9"4CM8$5K9QT;?2^XTWCZSY??2V&$*(8VL_?+E&>-8!
MDW<.BI.&V-\$%(SV6FMD%MP'CMOT/]M.^]??/$ZX-9CV]Q9B1X'\L_1?I]/5
M="/S:@8MUG0^@BX34E.P)P7$%&M'2RD*UUH0D%L&Z[?H>?I7X/M[%$.JJE/$
MU2^7B.?Y@B9''IA-(,GKKZFD$9RM8UZ3Y)GDA"8>#7LW*!O7KQU$_UM@:G]E
MC)Y7=C(-R\5[3"?SQ6SQ@1;G3S^]N,@9587,L@@049-?)V,A%DH"G@*C'^N"
MY58C\H=RR1Y^27_X.$"7BP:"'1L@?_N/Z7^0).OAPJMY^NLY![10BJG]HYTK
M&91'<OD1):#2W*"0V=RNOW\ &O<^?MRMJR$H#A=F![O1-IU3-'ER$ED$0SX<
MJ&P5;=JR@%;*<J.%, I;[$=#-4/J^B[X<+]H:!7VA,I'NJL8&VA%)0U.>0;*
M" DQY@0L)6MS*2SI-EU#_@C-D';"PQ[-D'913J=XN]-M)]M@7> 2-*_M\V)6
MX%DP8)UDPK*L,S9QR_\8S9!V0L0^S9!V44]/D'N\US%7+&AC/,A0\R*8->"8
MH/]P+17GP279%G2']S9_ F5, VV_0RFR)WANU5DT6Q8#5^3E.O2@. 7CM!0Y
M.;U!"H51F__N;=X )@?U-M]%9ST!\IX&M*Y$P9*T4&@/ "5< 2]2AJ2#,MFC
MSK'+OL"=]#;?"0D[] 7>12T=((R"^,5'O!SE^U/]@XLS1@K=-6?90LBBYGE'
M SZ1B+0.+D<N&6O3>?H1FL9MP]#'WCN4ROI%W_D2Y5((QK4!4]C&>[;U?,D!
MK4R+]7).Y28)SH]2-:Z-&TSWVV%J#T5T@*K7ZQ-<TL);?-JDL\X_G''WPY=/
M.%]=7/QJHJV@8L!+36R56.T_$Q1((1I=...B28RQ#7%=8FP?+"P:*Z8#L+W%
MVODDK4^KA7]Q$I8?+GLIZ6)(5%F C87<6K2U<B])R"H(8ZU1HLULD(=)&O=:
MHAVP!E)"!W :MM(J>RN8T8200@M*918@:%G .L.,4,RK-K7DQV\;TZPI4A\^
MWWBPZ&E-7 OL_CY=G]R9U+NZ.:KWZK3TG/_SHI:SHGZ&F4G-$@5J*$$5'B!F
M)#LA4KT*+5*J)D/*FW#32>1]?'1N<1IT7*ATL%[>A*^;RXC%\EOE7>?]VT@C
M:3W]?-9O()0<--DIX&<#'!R'&)@#+^MHMNP3[<HMUL5!5#_]5,%A\'\\U7>
M\_M*)I_E_SQ=K:L,)C*6K*4)@+*>Q&F;2(ZJ$/2DX[9(P6V3P4&/D_7TDS>&
M0>J RNL BMN7UCY;+FOZ^=EM;OWJ=7E]NJZ!T6HC@Y\6OT^RD$5R3RPS2S%+
MC!0*<6: NZ"CE5K3OM,R%W80+I[^->DP0!\/&AVLB]<7)ST_D<CQU<=/I):S
MV'^UFI#OQ&,DJ=+F4IL)1@.1*0')2/H_ZW1.3>X7'B/JZ5\P#(/:P137 0BO
MJ']=7I$VYQ^F% :<B?B'+VEVFHG/ORT6^??I;#81M,4P0TZ0P4!.$#$*/@0#
M.3+K8R29BB9-T7:B\NF?B0P#TW:JW1NWGW$9%T/>9+P_"?/W^+&.SEE^O;D2
M;[:*N]U2;A*"$E9X!%%JHV)5\_5C+5!S.<02<C*FC8$]B.RML&W_^-@^HO([
M,-*/<_/BI/I#K^9OSM"P4=#YM=%;I!6W"K.)]Z;46T[06#34FFUP*6E %FF1
M2Y_L[<;1PZ#]8,JW KS[XP/^N!#HPL _SO*SV6SQ>YBG^OT+(F^Z6??UY))H
M^#H1/#'NK890QU4I+QFXB 6BU#PX9ZQN,[GB$**WPKK_LV-]0,7WV93K15B=
MU/_]\%^GT\_$,$6\89Y?S3_CV?G/7IVYOOW0 =IS[4CY0#VZZAL)C+=>?-DK
MR3O'%9,:>,H9E"231]@LP F3A3M=RS);6(+'R3H\.^Q2J*\VTZKH5?4UZZ_7
MQLW<3\*OM&C#;/H/S/2[M^=?_BU,YZNZD'#UGO3RG-[UV\26XIQR%,8Z0?\)
M+$) 0YRF.L:C"!M5DR2-8S W[JW@@)B]FZ[6&3*>J)7=)":TL;7GCSZ&Q;V/
MB^/87<Q"9.$D%%DW8F<=0<1YT"$(3$YCUDW.BMK8W;.J_P4%F_/ZN-?E'LD_
MNROY:RN&1V9JWYO(60&E2R&'J&3(UO"D+5.6^6\!ZU BNK9YN^#E9B^&(VFE
M@X. =^D$\^D,7Y>'1R3<3-ZXQ:_05FL6-.@8$53QY)8'SD!:B2IR%7QIDME[
M*.'CYC T0.XH&NT*P5?.1G4N7L\?7J1U=(*S,8.QT8&*QM7QOQ15<I[I7X>:
MI;:@W9K6<3,8CH+3-GKK )K['#O<WDXR6M3%0:2MH[:.\1 %)P%@##(':4UL
M@M3#21\W(Z$A<(^LU0YP?&U!OIB%U6I:IIB?7XY=. VSGT.M!EA_?1G6>(O7
MF)"Q2"!#$S5%GI8B3TZB-A*ES9PYIIJ<EAQ"]+AY"0VQ>S1-/M$0_8!)!5L_
M^QA!>LL)!M^ I[)*FX :4.8$"I4%;PBMP2D4*"6/OLD]2=O3T2MOY?[WG!6=
M6!%T%-)"*F325;((3LD$N13I44AC79/YIEM1UW6LO@MJ'O8DA])-!WON\S"K
M7L2[$\2;A<=)<182N0W&"PK/?.'@ ]/ HA(NH0ZE3<7 0P2-"ZL&NK^=43J$
M(CH%U'DQ:/08I-:&W-':$2:7>O9.BT^E$*7%%!4>#5(]U/T/H_(M<+2'_#M
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
MJO&CY_TGZZ43DC::5(<=<T$AM.4,<HKTKV$\N";'['^,O/]=T+-_WO\N.NK
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
MM)0Z!(3#::Z_5HQ6:Y*%]1"4)NIUG>D3A(?"93#.QA+Q5GKDH*T8GT8KJ'W
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
MO]SP9&,PAM$:DL+4>[C<U"1[':$GC31%I5(>A!^/5/GL^,)Q#U-/@:9FXN_
MA-U.?:Z#>(F23\369M74JI(-4\HFY>K-%I=4JNVL/(24*"9CF#E74IK<:&+R
M#M2-6WU]2G,VO+(Z0.#;U2=<_""Z:U90*^W01\#L:QLU6DS><7)K$;FVR86
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
MLP< O+KX>6*]D%97IDWM6H&.:,[!@2,#%H+6QO &N0%Z\SB-U]L!8%]A]@"
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
MC@V3BR]?+J?798;OOV":EFFZL<#OYY=7Z]K$F^R1QLAKT6J2%+6IVN_1:V]
M,Y]M-,8XS#OA9?=WCI>/;P"<1J+N()&R[]Y^EP3@VF#"XL#HJ"NC 4*]4^MS
M$BIISRUK4OUU,,7CIO;Z<:=.J_H.,'Y(RLDG)HPF%J,,M(PSB^!*<!#(2G!D
MTJ:=?/^7GRP\$8H&R"+NH])SR2)>Y+S^,US>D_Z@&<,GW] D.[@[3R?.!":'
MPM?V_T)6]T&Y!.0E2L*3, 6]B0G'J/,=*A/X*GR9KL+E]'\PW[SFU7RY^G4Q
M7RXG@IC+Q7$0V3OB/=64/V?@3=;>.16%;L+[4T2=1UYN']0\-'.#J:2#79A\
MF*_3)2GGE_GBY_E57)6KRYNZF(DQ*J.6->22M6F/(;,L.#DSV5LN4G .FS37
M?8JH\RBS.P9>@ZEDP(DGC3?,&S=\7FXKL,K]"JQ!]\Y=7]9D&SV(TQ/OJ)D+
M5)%7C%47,#,&CB&AC1<OF&(\F2:3/$ZTH]XO\GNXONY* =_-+R]),_\,BSSQ
MBN>(Y)1*:10HRS)X1:)AS**TUAAMF]C!O2D]C[UW'WS]4+/95'D=;,B[,3AQ
M+%B7= 8G,DG.>@,18P"6-?>T%\BBVM02[T3>N#ALC)&#$+F7P@Z&X1=<3.?Y
M_2HL5NV]0Q=B%-[HVJ:G%G0Y$AH6#UI:%J6S%K');8)^O</3 F\PY9R-U?O'
M8KK".CIMXK3G.MH )1H.JG -,="Z2L%';70R*8GQS-\MG>/V4.C1#AZFPO%G
MWUT?..W8,&+3NO;UW^E3+=A_1R1<Y/\D-ZA>3)]H';W-R8-Q,8-B*8##P %Y
MB2F4^K,=[]X/0<ZX?11. ]&1E'<V=G6BC/ \1 [<U1&!*!)$31^M85[[P**0
M(YK3<2>*]FA%]U+8D=[DZUD^72+H0<^3S9RU8?M\//..)FF???@Z<;:'HH^8
MO2^@"*04@V<!H4@)+C.OC&<$Y',^/_EC_G5=*_[;0QW4%?O+9L7JDGBQY(&@
MKFD)9 6<HU@M,^5=T$R(TJ3N:1?BSB.GLP^*'MJ\P574P<;[@).)9-YQ5QO)
MRSK6-UAQ33YS@7-/'K!1C3K[?T?'N& :7M%/M\S:2^K=)%T>[A6;@_?E)-&&
M;VV)M.GS.DTCUD)3:6C)<>YR*DFVZ9/[&$'C)EM.#:;#]-"?*?K>.?D?S'R2
M8Y >F2=>&-;32@.^\ Q&E6R3EM'K)E,'GZ5LW/S)J1%VI&8Z29(\8.K!&)^;
ML/I>2*U8R=*A IMKTQZ)9*X5+X#"<,^4CL64Y[S\@]X\;NJC&;K::Z$_HS9)
M@B<7O26;;!TH+3BXHFG)N!P*9BN1M>G0=X!_U2Q5<7+_:A^I]YN&>+^:I__Z
M*2SK=:[/=7C=^GF;.7:'Y!R>?N  "88]*!XHFW#7</9MN?_.];RM2L9RM7S_
MB5 :*U5_AF_K04=W8T2\UJD.'V*N[F.ECA$QLH -M26D3U*))@G&X\@^^N[F
M(V_\%6>X")?W!J"4@CH4!1AH.2KM,U!P8B$;38L*>?&AR6G^K@2.WOGB5-C[
MX:IG"PWV>8W]29MR^#2;71[;VB(VG'%S)#9-"-I8@J61]9B^-@YRVB!HPI/!
MJ+D339*OX]K%NZJK]3M^4-M:F6^_K*/MFU3Y@R;\)1:6@Y40D#Q59;D'AW6
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
MK):D^V19!A4P@ZLU'%$X<K1*<"XWJ3CH@_T7GU1_ 7:@&9Q?M!'8([02CMO
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
M@W,R[JGAJ'Y#,X6?%_!??:H=,G^;O9Z1U.GE&X??%Q3%$(?!U-/49$4MG53
M&3,N%9,=;S)[^W"2QSV3'!/* ZAP?,RN;T#MN!W5;U[D_[Q:KM8=6V\7J;?)
M6)[)+ZJ+-)H @7E&0:JU17$>8MGM^ME19.R$0WLN.#RQ6L[$>UWW"+['ZJ18
M9;QE"I@,!I2I _^24G5($$K'M.<X6L[@(;$[ =2="T!/IK9NH?EJ3E'B[&HZ
M^_CV"R[6C*[[MKC(L8 0*9'#@AR\E!JX<\SH(*1))\S";B-Q)QCZEP'#HU5T
M./AJ8\<3'*\-<^C5YBAJK .BS#EB[?]55*Z--%V!R*N)L<P89WQTJ<E-YE/<
M-;I&]$><I6_7E6$9O3',!J(GDBF-CD&0T0']WXB<4Y9>-V7V(47]'N;L@XM'
M;QD=I8 .]K)[V_ O\\4;_.=%2O76>+UIN9C/Z*]IW59R>=TP.223&,O 8D"*
M920#SU#76AEG0V&:ZR;HVHO*3A!W'#(>]G!KIJ8.,/B!?N]MN<CS]:2/VT)G
M'X5Q$;Q7U2=4M"V'.G7<V,!*YMJWJ=7<1LRXB&JH^_G BN@ 3+?K;U,1L_JV
M%@L&3%J(",'4BGRA#<7!-D.)/F:1B0DL3??%[\CIY)QX4!,U@."[A,^FI4,L
MW-IB-1@;?6VDC-=-LFT,S*001<(FK74>(ZB37>X(93^+GP,DWP&"-L?(KZJ)
M7GR[:>9?4J5> ME,XH$5 TZA(CDY^B!-MKI)#+*-F-Z0<XB:YP/+O /<D!AP
MN9JF[YD0TF%1,H,7C#9QZ^NMXWH-F%%X8L@<&TPM@+.5FDZVK2&1<[S4.X#.
MCY)Y$S[CVB(G[K4+T@#990M*VMJ@OQ3(+C)TM-6C:)O\^(&D3BX8-?9]#E)
MMU#:++0J!MK4.6!M1:Z4SV11:=W5>",Z*T)(30IAGR*JM]WL,,7OA*<#M- !
MHM[A5YQ=X:OYY\_392T4H"?_ML#+,,L;:YN<T*[>IM/KD-7+.HF&N I"2U.<
M5+$TB<V>I:Q';!T"@A]F @VID0X@=GWY^-Y\FCI1@02WN98QG86;24?%1B<Y
MHY6(Q%>6-9>1B$UAE;<QTZ,;]8W8C<#>'*R! -=$/QW@;ILS\?M=[P/CHJ!
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
M>&O!FTI0VHP.]$B\E1,@:(3NMIDL_39^)JA]/.Q\>ZI!HRSB#UNL,*8Q<ZD
MT1G-SMK69#5QCM"%VG*70&?N$^E\@4W3^P#X^7KS<),YT5@M2E H46=(IF5_
M*3F(B *L+GS"2.I$788L/TDPE(^9:-#;.;3;/[=^_*)]Q+ JGS_]!E!+ 0(4
M Q0    ( &6!_5!8)D*YC@@  & Z   ;              "  0    !A-C(X
M,C R,"TQ,'%X97AH:6)I=#,Q,2YH=&U02P$"% ,4    " !E@?U0^40/1)D(
M  "#.@  &P              @ ''"   838R.#(P,C M,3!Q>&5X:&EB:70S
M,3(N:'1M4$L! A0#%     @ 98']4-/[*.VR!0  RB@  !L
M ( !F1$  &$V,C@R,#(P+3$P<7AE>&AI8FET,S(Q+FAT;5!+ 0(4 Q0    (
M &6!_5!_TET!T 4  *\H   ;              "  807  !A-C(X,C R,"TQ
M,'%X97AH:6)I=#,R,BYH=&U02P$"% ,4    " !E@?U000[_R9A! @#87"
M$0              @ &-'0  8V=N>"TR,#(P,#8R."YH=&U02P$"% ,4
M" !E@?U0S8]HR&03  !PT@  $0              @ %47P( 8V=N>"TR,#(P
M,#8R."YX<V102P$"% ,4    " !E@?U0$07>J, I  #NP@$ %0
M    @ 'G<@( 8V=N>"TR,#(P,#8R.%]C86PN>&UL4$L! A0#%     @ 98']
M4-H6A(LD80  -#0$ !4              ( !VIP" &-G;G@M,C R,# V,CA?
M9&5F+GAM;%!+ 0(4 Q0    ( &6!_5"QVN(EE0P! /H7"P 5
M  "  3'^ @!C9VYX+3(P,C P-C(X7VQA8BYX;6Q02P$"% ,4    " !E@?U0
MHMSQOX>A  !,F@< %0              @ 'Y"@0 8V=N>"TR,#(P,#8R.%]P
<<F4N>&UL4$L%!@     *  H K@(  +.L!     $!

end
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
